Skip to content

Commit d0bd12c

Browse files
author
Atticus Kuhn
committed
remove phoas
1 parent e46e252 commit d0bd12c

File tree

2 files changed

+13
-313
lines changed

2 files changed

+13
-313
lines changed

Autoomaton/NatRF.lean

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -103,34 +103,33 @@ theorem isFairEmpty_of_rankingFunction (V : RankingFunction a) : a.IsFairEmpty :
103103

104104
-- def decidable_path (s1 : S) [Finite S] [f : (s1 s2 : S) → Decidable (a.R s1 s2)] : DecidablePred (fun s2 ↦ Relation.ReflTransGen a.R s1 s2) := sorry
105105

106-
noncomputable def fair_successors (s1 : S) [fin : Finite S] : Finset S :=
106+
@[simp, reducible]
107+
noncomputable def fair_successors (s1 : S) [Finite S] : Finset S :=
107108
let _ : Fintype S := Fintype.ofFinite S
108109
let _ : DecidablePred (fun s2 ↦ Relation.ReflTransGen a.R s1 s2 ∧ a.F s2) := Classical.decPred (fun s2 ↦ Relation.ReflTransGen a.R s1 s2 ∧ a.F s2)
109110
{s2 | Relation.ReflTransGen a.R s1 s2 ∧ a.F s2}
110111

112+
theorem f_subset (s1 s2 : S) [Finite S] (s1_r_s2 : a.R s1 s2) : fair_successors (a := a) s2 ⊆ fair_successors (a := a) s1 := fun e e_mem => by
113+
simp only [fair_successors, Finset.mem_filter, Finset.mem_univ, true_and] at e_mem
114+
rcases e_mem with ⟨e_r_s2, e_f⟩
115+
simp only [fair_successors, Finset.mem_filter, Finset.mem_univ, e_f, and_true, true_and]
116+
exact Relation.ReflTransGen.trans (Relation.ReflTransGen.single s1_r_s2) (e_r_s2)
117+
111118
noncomputable def fair_count (s1 : S) [fin : Finite S] : Nat :=
112119
Finset.card (fair_successors (a := a) s1)
113120

114-
theorem lt_le (a b : Nat) : (a + 1 ≤ b) ↔ (a < b) := by omega
121+
theorem lt_le (a b : Nat) : (a + 1 ≤ b) ↔ (a < b) := by omega
115122

116123
noncomputable def completeness [fin : Finite S] (a : Automaton S) (fe : a.IsFairEmpty) : RankingFunction a := {
117124
rank := fun s => fair_count (a := a) s,
118125
reach := State.IsReachable (a := a),
119126
init_reach := init_reachable (a := a),
120127
next_reach := next_reachable (a := a) ,
121128
rank_le_of_rel := fun s1 s2 s1_r_s2 s1_reach => by
122-
have f_subset : fair_successors (a := a) s2 ⊆ fair_successors (a := a) s1 := by
123-
intro e e_mem
124-
simp only [fair_successors, Finset.mem_filter, Finset.mem_univ, true_and] at e_mem
125-
rcases e_mem with ⟨e_r_s2, e_f⟩
126-
simp only [fair_successors, Finset.mem_filter, Finset.mem_univ, e_f, and_true, true_and]
127-
trans s2
128-
· exact Relation.ReflTransGen.single s1_r_s2
129-
· exact e_r_s2
129+
have f_subset : fair_successors (a := a) s2 ⊆ fair_successors (a := a) s1 := f_subset s1 s2 s1_r_s2
130130
by_cases s1_fair : a.F s1
131131
<;> simp only [fair_count, fair_successors, s1_fair, ↓reduceIte, lt_le, gt_iff_lt, s1_fair, Bool.false_eq_true, ↓reduceIte, add_zero, ge_iff_le]
132132
· apply Finset.card_lt_card
133-
simp only [fair_successors] at f_subset
134133
simp only [Finset.ssubset_def, f_subset, true_and]
135134
intro sub
136135
have s1_in : s1 ∈ fair_successors (a := a) s2 :=
@@ -140,19 +139,16 @@ noncomputable def completeness [fin : Finite S] (a : Automaton S) (fe : a.IsFair
140139
simp only [fair_successors, Finset.mem_filter, Finset.mem_univ, true_and] at s1_in
141140
rcases s1_in with ⟨s2_r_s1, _⟩
142141
apply fe
143-
apply vardiRun_fair (if Even · then s2 else s1)
142+
apply vardiRun_fair (if Even · then s1 else s2)
144143
· intro n
145144
rcases s1_reach with ⟨ i, i_rfm, i_init⟩
146145
by_cases p : Even n
147146
<;> simp only [Nat.even_add_one, p, not_false_eq_true, not_true_eq_false, ↓reduceIte]
148147
<;> use s1, i
149148
<;> simp only [i_init, i_rfm, Relation.ReflTransGen.refl, s1_fair,
150149
Relation.TransGen.single s1_r_s2, s2_r_s1, and_self, true_and]
151-
exact ⟨by
152-
trans s1
153-
· exact i_rfm
154-
· exact Relation.ReflTransGen.single s1_r_s2
155-
, by
150+
exact ⟨Relation.ReflTransGen.trans i_rfm (Relation.ReflTransGen.single s1_r_s2),
151+
by
156152
rw [Relation.TransGen.head'_iff]
157153
use s2
158154

Autoomaton/phoas.lean

Lines changed: 0 additions & 296 deletions
This file was deleted.

0 commit comments

Comments
 (0)