@@ -102,6 +102,42 @@ theorem lt_of_lf {x y : pgame} (ox : numeric x) (oy : numeric y) (h : x ⧏ y) :
102
102
theorem lf_iff_lt {x y : pgame} (ox : numeric x) (oy : numeric y) : x ⧏ y ↔ x < y :=
103
103
⟨lt_of_lf ox oy, lf_of_lt⟩
104
104
105
+ /-- Definition of `x ≤ y` on numeric pre-games, in terms of `<` -/
106
+ theorem le_iff_forall_lt {x y : pgame} (ox : x.numeric) (oy : y.numeric) :
107
+ x ≤ y ↔ (∀ i, x.move_left i < y) ∧ ∀ j, x < y.move_right j :=
108
+ begin
109
+ rw le_iff_forall_lf,
110
+ convert iff.rfl;
111
+ refine propext (forall_congr $ λ i, (lf_iff_lt _ _).symm);
112
+ apply_rules [numeric.move_left, numeric.move_right]
113
+ end
114
+
115
+ theorem le_of_forall_lt {x y : pgame} (ox : x.numeric) (oy : y.numeric) :
116
+ ((∀ i, x.move_left i < y) ∧ ∀ j, x < y.move_right j) → x ≤ y :=
117
+ (le_iff_forall_lt ox oy).2
118
+
119
+ /-- Definition of `x < y` on numeric pre-games, in terms of `≤` -/
120
+ theorem lt_iff_forall_le {x y : pgame} (ox : x.numeric) (oy : y.numeric) :
121
+ x < y ↔ (∃ i, x ≤ y.move_left i) ∨ ∃ j, x.move_right j ≤ y :=
122
+ by rw [←lf_iff_lt ox oy, lf_iff_forall_le]
123
+
124
+ theorem lt_of_forall_le {x y : pgame} (ox : x.numeric) (oy : y.numeric) :
125
+ ((∃ i, x ≤ y.move_left i) ∨ ∃ j, x.move_right j ≤ y) → x < y :=
126
+ (lt_iff_forall_le ox oy).2
127
+
128
+ /-- The definition of `x < y` on numeric pre-games, in terms of `<` two moves later. -/
129
+ theorem lt_def {x y : pgame} (ox : x.numeric) (oy : y.numeric) : x < y ↔
130
+ (∃ i, (∀ i', x.move_left i' < y.move_left i) ∧ ∀ j, x < (y.move_left i).move_right j) ∨
131
+ ∃ j, (∀ i, (x.move_right j).move_left i < y) ∧ ∀ j', x.move_right j < y.move_right j' :=
132
+ begin
133
+ rw [←lf_iff_lt ox oy, lf_def],
134
+ convert iff.rfl;
135
+ ext;
136
+ convert iff.rfl;
137
+ refine propext (forall_congr $ λ i, lf_iff_lt _ _);
138
+ apply_rules [numeric.move_left, numeric.move_right]
139
+ end
140
+
105
141
theorem not_fuzzy {x y : pgame} (ox : numeric x) (oy : numeric y) : ¬ fuzzy x y :=
106
142
λ h, not_lf.2 (le_of_lf ox oy (lf_of_fuzzy h)) h.2
107
143
0 commit comments