lemma
proved
ballP_mono
show as:
view math explainer →
open explainer
Read the cached plain-language explainer.
open lean source
IndisputableMonolith.Causality.BallP on GitHub at line 14.
browse module
All declarations in this module, on Recognition.
explainer page
depends on
used by
formal source
11| 0, y => y = x
12| Nat.succ n, y => ballP K x n y ∨ ∃ z, ballP K x n z ∧ K.step z y
13
14lemma ballP_mono {K : Kinematics α} {x : α} {n m : Nat}
15 (hnm : n ≤ m) : {y | ballP K x n y} ⊆ {y | ballP K x m y} := by
16 induction hnm with
17 | refl => intro y hy; simpa using hy
18 | @step m hm ih =>
19 intro y hy
20 exact Or.inl (ih hy)
21
22lemma reach_mem_ballP {K : Kinematics α} {x y : α} :
23 ∀ {n}, ReachN K n x y → ballP K x n y := by
24 intro n h; induction h with
25 | zero => simp [ballP]
26 | @succ n x y z hxy hyz ih =>
27 exact Or.inr ⟨y, ih, hyz⟩
28
29lemma inBall_subset_ballP {K : Kinematics α} {x y : α} {n : Nat} :
30 inBall K x n y → ballP K x n y := by
31 intro ⟨k, hk, hreach⟩
32 have : ballP K x k y := reach_mem_ballP (K:=K) (x:=x) (y:=y) hreach
33 exact (ballP_mono (K:=K) (x:=x) hk) this
34
35lemma ballP_subset_inBall {K : Kinematics α} {x y : α} :
36 ∀ {n}, ballP K x n y → inBall K x n y := by
37 intro n
38 induction n generalizing y with
39 | zero =>
40 intro hy; rcases hy with rfl; exact ⟨0, le_rfl, ReachN.zero⟩
41 | succ n ih =>
42 intro hy
43 cases hy with
44 | inl hy' =>