Skip to content

Commit 83b80a8

Browse files
committed
wip
1 parent e55cdf0 commit 83b80a8

7 files changed

Lines changed: 209 additions & 288 deletions

File tree

Foundation/Propositional/ConsistentTableau.lean

Lines changed: 170 additions & 269 deletions
Large diffs are not rendered by default.

Foundation/Propositional/Entailment/Corsi/VF.lean

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,6 @@ lemma ruleC_fconj' {Γ : Finset ι} (Φ : ι → F) (h : ∀ i ∈ Γ, 𝓢 ⊢
124124
simpa;
125125

126126

127-
128127
lemma mem_lconj₂ {Γ : List F} (h : φ ∈ Γ) : 𝓢 ⊢ ⋀Γ 🡒 φ := by
129128
induction Γ using List.induction_with_singleton with
130129
| hcons ψ Δ he ih =>
@@ -191,6 +190,10 @@ lemma mem_ldisj₂ {Γ : List F} (h : ψ ∈ Γ) : 𝓢 ⊢ ψ 🡒 Γ.disj₂ :
191190
exact orIntroR;
192191
| _ => simp_all;
193192

193+
lemma mem_fdisj {Γ : Finset F} (h : ψ ∈ Γ) : 𝓢 ⊢ ψ 🡒 Γ.disj := by
194+
apply mem_ldisj₂;
195+
simpa using h;
196+
194197
lemma mem_fdisj' {Γ : Finset ι} (Φ : ι → F) (hΦ : ∃ i ∈ Γ, Φ i = ψ) : 𝓢 ⊢ ψ 🡒 ⩖ i ∈ Γ, Φ i := by
195198
apply mem_ldisj₂;
196199
simpa;
@@ -212,6 +215,26 @@ lemma ruleD_fdisj' {Γ : Finset ι} (Φ : ι → F) (h : ∀ i ∈ Γ, 𝓢 ⊢
212215
simpa;
213216

214217

218+
lemma CLDisj₂Disj₂_of_provable {Γ : List F} (h : ∀ γ ∈ Γ, 𝓢 ⊢ γ 🡒 δ) : 𝓢 ⊢ Γ.disj₂ 🡒 δ := by
219+
induction Γ using List.induction_with_singleton with
220+
| hnil => simp only [List.disj₂_nil, Entailment.efq!];
221+
| hsingle φ => apply h; simp;
222+
| hcons ψ Δ he ih =>
223+
simp only [List.disj₂_cons_nonempty he];
224+
simp only [List.mem_cons, forall_eq_or_imp] at h;
225+
apply ruleD;
226+
. apply h.1;
227+
. apply ih h.2;
228+
229+
lemma CLDisj₂Disj₂_of_subset {Γ Δ : List F} (h : ∀ φ, φ ∈ Γ → φ ∈ Δ) : 𝓢 ⊢ Γ.disj₂ 🡒 Δ.disj₂ := by
230+
apply CLDisj₂Disj₂_of_provable;
231+
intro γ hγ;
232+
apply mem_ldisj₂ $ h _ hγ;
233+
234+
lemma CFDisjFDisj_of_subset {Γ Δ : Finset F} (h : Γ ⊆ Δ) : 𝓢 ⊢ Γ.disj 🡒 Δ.disj := by
235+
apply CLDisj₂Disj₂_of_subset;
236+
simpa;
237+
215238

216239
variable [Entailment.Disjunctive 𝓢] [Entailment.Consistent 𝓢]
217240

Foundation/Propositional/Kripke3/Axiom/Dummett.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ instance [Entailment.HasAxiomDummett 𝓢] : IsPiecewiseStronglyConnected (canon
8686
by_contra!;
8787
obtain ⟨φ, hφy, hφz⟩ := Set.not_subset.mp this.1;
8888
obtain ⟨ψ, hψz, hψy⟩ := Set.not_subset.mp this.2;
89-
rcases (show φ ψ ∈ x.1.1 ∨ ψ φ ∈ x.1.1 by exact iff_mem₁_or.mp $ mem₁_of_provable dummett!) with (hφψx | hψφx);
89+
rcases (show φ 🡒 ψ ∈ x.1.1 ∨ ψ 🡒 φ ∈ x.1.1 by exact iff_mem₁_or.mp $ mem₁_of_provable dummett!) with (hφψx | hψφx);
9090
. exact hψy $ mdp₁_mem hφy (Rxy hφψx);
9191
. exact hφz $ mdp₁_mem hψz (Rxz hψφx);
9292

Foundation/Propositional/Kripke3/Axiom/KreiselPutnam.lean

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -92,14 +92,14 @@ instance [Entailment.HasAxiomKreiselPutnam 𝓢] : (canonicalKripkeModel 𝓢).K
9292
let Γ₂ := Γ₁.preimage (∼·) $ by simp [Set.InjOn];
9393
let Δy := { φ ∈ Δ | φ ∈ y.1.2};
9494
let Δz := { φ ∈ Δ | φ ∈ z.1.2};
95-
replace hC : 𝓢 ⊢ (Γx ∪ Γ₁).conj (Δy ∪ Δz).disj := C!_replace ?_ ?_ hC;
96-
. replace hC : 𝓢 ⊢ Γx.conj ⋏ Γ₁.conj Δy.disj ⋎ Δz.disj := C!_replace CKFconjFconjUnion! CFdisjUnionAFdisj hC;
95+
replace hC : 𝓢 ⊢ (Γx ∪ Γ₁).conj 🡒 (Δy ∪ Δz).disj := C!_replace ?_ ?_ hC;
96+
. replace hC : 𝓢 ⊢ Γx.conj ⋏ Γ₁.conj 🡒 Δy.disj ⋎ Δz.disj := C!_replace CKFconjFconjUnion! CFdisjUnionAFdisj hC;
9797
generalize eδy : Δy.disj = δy at hC;
9898
generalize eδz : Δz.disj = δz at hC;
99-
replace hC : ↑Γx *⊢[𝓢] ∼(Γ₂.disj) δy ⋎ δz := C!_trans ?_ $ FConj_DT.mp $ CK!_iff_CC!.mp hC;
99+
replace hC : ↑Γx *⊢[𝓢] ∼(Γ₂.disj) 🡒 δy ⋎ δz := C!_trans ?_ $ FConj_DT.mp $ CK!_iff_CC!.mp hC;
100100
. generalize eγ : Γ₂.disj = γ at hC;
101-
replace hC : ↑Γx *⊢[𝓢] (∼γ δy) ⋎ (∼γ δz) := kreiselputnam'! hC;
102-
replace hC : ∼γ δy ∈ x.1.1 ∨ ∼γ δz ∈ x.1.1 := iff_mem₁_or.mp $ iff_provable_include₁.mp hC x ?_;
101+
replace hC : ↑Γx *⊢[𝓢] (∼γ 🡒 δy) ⋎ (∼γ 🡒 δz) := kreiselputnam'! hC;
102+
replace hC : ∼γ 🡒 δy ∈ x.1.1 ∨ ∼γ 🡒 δz ∈ x.1.1 := iff_mem₁_or.mp $ iff_provable_include₁.mp hC x ?_;
103103
. rcases hC with h | h;
104104
. apply iff_not_mem₂_mem₁.mpr $ of_mem₁_imp' (Rxy h) ?_
105105
. subst eδy;

Foundation/Propositional/Kripke3/Axiom/WLEM.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ instance [Entailment.HasAxiomWLEM 𝓢] : IsPiecewiseStronglyConvergent (canonic
8585
let Θz := { φ ∈ Γ | φ ∈ z.1.1 ∧ φ ∉ x.1.1 };
8686

8787
simp only [Finset.disj_empty] at h;
88-
replace : [Θx.conj] ⊢[𝓢] ∼∼Θz.conj ∼Θy.conj := contra! $ FiniteContext.deductInv'! $ by
88+
replace : [Θx.conj] ⊢[𝓢] ∼∼Θz.conj 🡒 ∼Θy.conj := contra! $ FiniteContext.deductInv'! $ by
8989
apply FConj_DT.mpr;
9090
apply FConj_DT'.mpr;
9191
apply FConj_DT'.mpr;

Foundation/Propositional/Kripke3/Basic.lean

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ def Forces (M : KripkeModel κ α) (x : M.world) : Formula α → Prop
4444
| ⊥ => False
4545
| φ ⋏ ψ => Forces M x φ ∧ Forces M x ψ
4646
| φ ⋎ ψ => Forces M x φ ∨ Forces M x ψ
47-
| φ ψ => ∀ y : M.world, x ≺ y → (Forces M y φ → Forces M y ψ)
47+
| φ 🡒 ψ => ∀ y : M.world, x ≺ y → (Forces M y φ → Forces M y ψ)
4848

4949
instance : ForcingRelation M.world (Formula α) where
5050
Forces := Forces M
@@ -54,7 +54,7 @@ instance : ForcingRelation M.world (Formula α) where
5454
@[simp, grind .] lemma forces_verum : x ⊩ ⊤ := by tauto;
5555
@[grind =] lemma forces_and : x ⊩ φ ⋏ ψ ↔ x ⊩ φ ∧ x ⊩ ψ := by rfl;
5656
@[grind =] lemma forces_or : x ⊩ φ ⋎ ψ ↔ x ⊩ φ ∨ x ⊩ ψ := by rfl;
57-
@[grind =] lemma forces_imp : x ⊩ φ ψ ↔ ∀ y : M.world, x ≺ y → (y ⊩ φ → y ⊩ ψ) := by rfl;
57+
@[grind =] lemma forces_imp : x ⊩ φ 🡒 ψ ↔ ∀ y : M.world, x ≺ y → (y ⊩ φ → y ⊩ ψ) := by rfl;
5858

5959
@[grind =]
6060
lemma forces_neg : x ⊩ ∼φ ↔ ∀ y, x ≺ y → (y ⊮ φ) := by
@@ -187,7 +187,7 @@ attribute [grind .]
187187
lemma validates_ruleC (hφ : M ⊧ φ) (hψ : M ⊧ ψ) : M ⊧ φ ⋏ ψ := fun x ↦ ⟨hφ x, hψ x⟩
188188

189189
@[grind <=]
190-
lemma validates_afortiori (h : M ⊧ φ) : M ⊧ ψ φ := fun _ y _ _ ↦ h y
190+
lemma validates_afortiori (h : M ⊧ φ) : M ⊧ ψ 🡒 φ := fun _ y _ _ ↦ h y
191191

192192
end Models
193193

@@ -208,7 +208,7 @@ lemma formula_persistency [Persistent M] [IsTrans _ M.rel] {x y : M.world} {φ :
208208
| _ => grind;
209209

210210
@[grind .]
211-
lemma validates_implyK [Persistent M] [IsTrans _ M.rel] : M ⊧ φ ψ φ := by
211+
lemma validates_implyK [Persistent M] [IsTrans _ M.rel] : M ⊧ φ 🡒 ψ 🡒 φ := by
212212
intro x y Rxy hφ z Ryz hψ;
213213
apply formula_persistency hφ Ryz;
214214

@@ -219,7 +219,7 @@ lemma validates_implyS [IsTrans _ M.rel] [Std.Refl M.rel] : M ⊧ Axioms.ImplyS
219219
have Rww : w ≺ w := Std.Refl.refl _;
220220
exact hφψχ _ Ryw hφ _ Rww (hφψ _ Rzw hφ);
221221

222-
lemma validates_mdp_of_reflexive [Std.Refl M.rel] (hφψ : M ⊧ φ ψ) (hφ : M ⊧ φ) : M ⊧ ψ := by
222+
lemma validates_mdp_of_reflexive [Std.Refl M.rel] (hφψ : M ⊧ φ 🡒 ψ) (hφ : M ⊧ φ) : M ⊧ ψ := by
223223
intro x;
224224
apply hφψ x;
225225
. apply Std.Refl.refl;
@@ -229,9 +229,6 @@ class Intuitionistic (M : KripkeModel κ α) extends Std.Refl M.rel, IsTrans _ M
229229

230230
end
231231

232-
233-
def logic (M : KripkeModel κ α) : Logic α := { φ | M ⊧ φ }
234-
235232
end KripkeModel
236233

237234

Foundation/Propositional/Kripke3/Logic/Int/Completeness.lean

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ lemma truthlemma : t ⊩ φ ↔ φ ∈ t.1.1 := by
6060
obtain ⟨t', ⟨h, _⟩⟩ := lindenbaum (𝓢 := 𝓢) (t₀ := (insert φ t.1.1, {ψ})) $ by
6161
intro Γ Δ hΓ hΔ;
6262
by_contra hC;
63-
apply t.consistent (Γ := Γ.erase φ) (Δ := {φ ψ}) ?_ ?_;
63+
apply t.consistent (Γ := Γ.erase φ) (Δ := {φ 🡒 ψ}) ?_ ?_;
6464
. simp only [Finset.disj_singleton];
6565
apply FConj_DT.mpr;
6666
apply Context.deduct!
@@ -91,11 +91,11 @@ lemma truthlemma : t ⊩ φ ↔ φ ∈ t.1.1 := by
9191
have hpq := htt' h;
9292
apply ihq.mpr;
9393
apply iff_not_mem₂_mem₁.mp;
94-
apply not_mem₂ (Γ := {φ, φ ψ});
94+
apply not_mem₂ (Γ := {φ, φ 🡒 ψ});
9595
. simp only [Finset.coe_insert, Finset.coe_singleton];
9696
apply Set.doubleton_subset.mpr;
9797
tauto;
98-
. suffices 𝓢 ⊢ Finset.conj {φ, φ ψ} Finset.disj {ψ} by simpa;
98+
. suffices 𝓢 ⊢ Finset.conj {φ, φ 🡒 ψ} 🡒 Finset.disj {ψ} by simpa;
9999
apply Entailment.CFConj_CDisj!_of_innerMDP (φ := φ) (ψ := ψ) <;> simp;
100100

101101
lemma iff_validates_provable : (canonicalKripkeModel 𝓢) ⊧ φ ↔ 𝓢 ⊢ φ := by

0 commit comments

Comments
 (0)