Skip to content

Commit aa58011

Browse files
sorry out breaking changes
1 parent 20533d5 commit aa58011

1 file changed

Lines changed: 31 additions & 25 deletions

File tree

src/Iris/Algebra/DFrac.lean

Lines changed: 31 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,10 @@ abbrev DFrac F := LeibnizO (DFracK F)
2020
-- TODO: Delete this class. I have it now because the Fractional class is being
2121
-- changed concurrently. Also I'm certain that some of these fields will be derivable.
2222
class DFractional (F : Type _) extends Fractional F where
23-
one_strict_max {y : F} : ¬(One.one + y ≤ One.one)
24-
lt_irrefl : ¬(One.one < (One.one : F))
25-
strict_pos {x y : F} : ¬(x + y = x)
26-
lt_op_mono {x y z : F} : x + y ≤ z → y < z -- OK because positive
23+
-- one_strict_max {y : F} : ¬(One.one + y ≤ One.one)
24+
-- lt_irrefl : ¬(One.one < (One.one : F))
25+
-- strict_pos {x y : F} : ¬(x + y = x)
26+
-- lt_op_mono {x y z : F} : x + y ≤ z → y < z -- OK because positive
2727

2828
section dfrac
2929

@@ -34,9 +34,9 @@ variable {F : Type _} [DFractional F]
3434
instance : Inhabited (DFrac F) := ⟨⟨Discard⟩⟩
3535

3636
abbrev valid : DFrac F → Prop
37-
| ⟨Own f⟩ => f ≤ One.one
37+
| ⟨Own f⟩ => Fractional.proper f -- f ≤ One.one
3838
| ⟨Discard⟩ => True
39-
| ⟨OwnDiscard f⟩ => f < One.one
39+
| ⟨OwnDiscard f⟩ => sorry -- Iris.fraction -- f < One.one
4040

4141
abbrev pcore : DFrac F → Option (DFrac F)
4242
| ⟨Own _⟩ => none
@@ -70,6 +70,8 @@ instance DFrac_CMRA : CMRA (DFrac F) where
7070
valid_iff_validN := ⟨fun x _ => x, fun x => x 0
7171
validN_succ := id
7272
validN_op_left {_ x y} := by
73+
sorry
74+
/-
7375
have Lleft {a' a : F} (H : a' + a < one) : a' < one := by
7476
rcases Fractional.lt_sum.mp H with ⟨r, Hr⟩
7577
exact (Fractional.lt_sum.mpr ⟨a + r, Hr.symm ▸ Fractional.assoc.symm⟩)
@@ -79,12 +81,16 @@ instance DFrac_CMRA : CMRA (DFrac F) where
7981
· exact (Fractional.add_le_mono <| Fractional.lt_le ·)
8082
· exact Lleft
8183
· exact Lleft
84+
-/
8285
assoc {x y z} := by
86+
sorry
87+
/-
8388
rcases x with ⟨x|_|x⟩ <;>
8489
rcases y with ⟨y|_|y⟩ <;>
8590
rcases z with ⟨z|_|z⟩ <;>
8691
simp [op, Fractional.assoc]
87-
comm {x y} := by rcases x with ⟨x|_|x⟩ <;> rcases y with ⟨y|_|y⟩ <;> simp [op, Fractional.comm]
92+
-/
93+
comm {x y} := sorry -- by rcases x with ⟨x|_|x⟩ <;> rcases y with ⟨y|_|y⟩ <;> simp [op, Fractional.comm]
8894
pcore_op_left {x y} := by rcases x with ⟨x|_|x⟩ <;> rcases y with ⟨y|_|y⟩ <;> simp
8995
pcore_idem {x y} := by rcases x with ⟨x|_|x⟩ <;> rcases y with ⟨y|_|y⟩ <;> simp
9096
pcore_op_mono {x y} := by
@@ -120,9 +126,9 @@ instance : CMRA.Exclusive (α := DFrac F) ⟨Own One.one⟩ where
120126
exclusive0_l y := by
121127
rcases y with ⟨y|_|y⟩ <;>
122128
simp only [CMRA.ValidN, valid]
123-
· exact DFractional.one_strict_max
124-
· exact DFractional.lt_irrefl
125-
· exact DFractional.one_strict_max ∘ Fractional.lt_le
129+
· sorry -- exact DFractional.one_strict_max
130+
· sorry -- exact DFractional.lt_irrefl
131+
· sorry -- exact DFractional.one_strict_max ∘ Fractional.lt_le
126132

127133
instance {f : F} : CMRA.Cancelable (α := DFrac F) ⟨Own f⟩ where
128134
cancelableN {_ x y} := by
@@ -131,31 +137,31 @@ instance {f : F} : CMRA.Cancelable (α := DFrac F) ⟨Own f⟩ where
131137
simp [CMRA.ValidN, CMRA.op, op]
132138
all_goals intro H Hxyz
133139
all_goals (try have Hxyz' := LeibnizO.dist_inj Hxyz <;> simp at Hxyz')
134-
· exact congrArg (LeibnizO.mk ∘ Own) (Fractional.cancel Hxyz')
135-
· exact (DFractional.strict_pos (F := F) Hxyz'.symm).elim
136-
· exact (DFractional.strict_pos (F := F) Hxyz').elim
137-
· exact congrArg (LeibnizO.mk ∘ OwnDiscard) (Fractional.cancel Hxyz')
140+
· sorry -- exact congrArg (LeibnizO.mk ∘ Own) (Fractional.cancel Hxyz')
141+
· sorry -- exact (DFractional.strict_pos (F := F) Hxyz'.symm).elim
142+
· sorry -- exact (DFractional.strict_pos (F := F) Hxyz').elim
143+
· sorry -- exact congrArg (LeibnizO.mk ∘ OwnDiscard) (Fractional.cancel Hxyz')
138144

139145
instance {f : F} : CMRA.IdFree (α := DFrac F) ⟨Own f⟩ where
140146
id_free0_r y := by
141147
rcases y with ⟨y|_|y⟩ <;> simp [CMRA.ValidN, CMRA.op, op] <;> intro H Hxyz
142148
all_goals (try have Hxyz' := LeibnizO.dist_inj Hxyz <;> simp at Hxyz')
143-
exact (DFractional.strict_pos (F := F) Hxyz').elim
149+
sorry -- exact (DFractional.strict_pos (F := F) Hxyz').elim
144150

145-
theorem valid_own_iff {f : F} : ✓ (LeibnizO.mk (Own f)) ↔ f ≤ One.one := by simp [CMRA.Valid]
146-
theorem valid_own_one : ✓ (LeibnizO.mk (Own (One.one : F))) := valid_own_iff.mpr Fractional.le_refl
151+
-- theorem valid_own_iff {f : F} : ✓ (LeibnizO.mk (Own f)) ↔ f ≤ One.one := by simp [CMRA.Valid]
152+
-- theorem valid_own_one : ✓ (LeibnizO.mk (Own (One.one : F))) := valid_own_iff.mpr Fractional.le_refl
147153

148-
theorem valid_op_own_r {dq : DFrac F} {q : F} : ✓ (dq • ⟨Own q⟩) → (q < One.one) := by
149-
rcases dq with ⟨y|_|y⟩ <;> simp [CMRA.ValidN, CMRA.op, op, CMRA.Valid]
150-
· exact DFractional.lt_op_mono
151-
· exact DFractional.lt_op_mono ∘ Fractional.lt_le
154+
-- theorem valid_op_own_r {dq : DFrac F} {q : F} : ✓ (dq • ⟨Own q⟩) → (q < One.one) := by
155+
-- rcases dq with ⟨y|_|y⟩ <;> simp [CMRA.ValidN, CMRA.op, op, CMRA.Valid]
156+
-- · exact DFractional.lt_op_mono
157+
-- · exact DFractional.lt_op_mono ∘ Fractional.lt_le
152158

153-
theorem valid_op_own_l {dq : DFrac F} {q : F} : ✓ (⟨Own q⟩ • dq) → (q < One.one) :=
154-
valid_op_own_r ∘ CMRA.valid_of_eqv (CMRA.comm (y := dq))
159+
-- theorem valid_op_own_l {dq : DFrac F} {q : F} : ✓ (⟨Own q⟩ • dq) → (q < One.one) :=
160+
-- valid_op_own_r ∘ CMRA.valid_of_eqv (CMRA.comm (y := dq))
155161

156162
theorem valid_discarded : ✓ (LeibnizO.mk Discard : DFrac F) := by simp [CMRA.Valid, valid]
157163

158-
theorem valid_own_op_discarded {q : F} : ✓ (⟨Own q⟩ • ⟨Discard⟩ : DFrac F) ↔ q < One.one := by
159-
simp [CMRA.op, op, CMRA.Valid, valid]
164+
-- theorem valid_own_op_discarded {q : F} : ✓ (⟨Own q⟩ • ⟨Discard⟩ : DFrac F) ↔ q < One.one := by
165+
-- simp [CMRA.op, op, CMRA.Valid, valid]
160166

161167
end dfrac

0 commit comments

Comments
 (0)