-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Expand file tree
/
Copy pathInitialSeg.lean
More file actions
88 lines (64 loc) · 2.68 KB
/
InitialSeg.lean
File metadata and controls
88 lines (64 loc) · 2.68 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
/-
Copyright (c) 2024 Violeta Hernández Palacios. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Violeta Hernández Palacios
-/
module
public import Mathlib.Order.InitialSeg
public import Mathlib.Order.SuccPred.Limit
/-!
# Initial segments and successors
We establish some connections between initial segment embeddings and successors and predecessors.
-/
public section
variable {α β : Type*} {a b : α} [PartialOrder α] [PartialOrder β]
open Order
namespace InitialSeg
@[simp]
theorem apply_covBy_apply_iff (f : α ≤i β) : f a ⋖ f b ↔ a ⋖ b :=
(isLowerSet_range f).ordConnected.apply_covBy_apply_iff f.toOrderEmbedding
@[simp]
theorem apply_wCovBy_apply_iff (f : α ≤i β) : f a ⩿ f b ↔ a ⩿ b := by
simp [wcovBy_iff_eq_or_covBy]
theorem map_succ [SuccOrder α] [NoMaxOrder α] [SuccOrder β] (f : α ≤i β) (a : α) :
f (succ a) = succ (f a) :=
(f.apply_covBy_apply_iff.2 (covBy_succ a)).succ_eq.symm
theorem map_pred [PredOrder α] [NoMinOrder α] [PredOrder β] (f : α ≤i β) (a : α) :
f (pred a) = pred (f a) :=
(f.apply_covBy_apply_iff.2 (pred_covBy a)).pred_eq.symm
@[simp]
theorem isSuccPrelimit_apply_iff (f : α ≤i β) : IsSuccPrelimit (f a) ↔ IsSuccPrelimit a := by
constructor <;> intro h b hb
· rw [← f.apply_covBy_apply_iff] at hb
exact h _ hb
· obtain ⟨c, rfl⟩ := f.mem_range_of_rel hb.lt
rw [f.apply_covBy_apply_iff] at hb
exact h _ hb
@[simp]
theorem isSuccLimit_apply_iff (f : α ≤i β) : IsSuccLimit (f a) ↔ IsSuccLimit a := by
simp [isSuccLimit_iff]
alias ⟨_, map_isSuccPrelimit⟩ := isSuccPrelimit_apply_iff
alias ⟨_, map_isSuccLimit⟩ := isSuccLimit_apply_iff
end InitialSeg
namespace PrincipalSeg
@[simp]
theorem apply_covBy_apply_iff (f : α <i β) : f a ⋖ f b ↔ a ⋖ b :=
(f : α ≤i β).apply_covBy_apply_iff
@[simp]
theorem apply_wCovBy_apply_iff (f : α <i β) : f a ⩿ f b ↔ a ⩿ b :=
(f : α ≤i β).apply_wCovBy_apply_iff
theorem map_succ [SuccOrder α] [NoMaxOrder α] [SuccOrder β] (f : α <i β) (a : α) :
f (succ a) = succ (f a) :=
(f : α ≤i β).map_succ a
theorem map_pred [PredOrder α] [NoMinOrder α] [PredOrder β] (f : α ≤i β) (a : α) :
f (pred a) = pred (f a) :=
(f : α ≤i β).map_pred a
@[simp]
theorem isSuccPrelimit_apply_iff (f : α <i β) : IsSuccPrelimit (f a) ↔ IsSuccPrelimit a :=
(f : α ≤i β).isSuccPrelimit_apply_iff
@[simp]
theorem isSuccLimit_apply_iff (f : α <i β) : IsSuccLimit (f a) ↔ IsSuccLimit a :=
(f : α ≤i β).isSuccLimit_apply_iff
alias ⟨_, map_isSuccPrelimit⟩ := isSuccPrelimit_apply_iff
alias ⟨_, map_isSuccLimit⟩ := isSuccLimit_apply_iff
end PrincipalSeg