Skip to content

Commit 3523886

Browse files
SnO2WMaNclaude
andcommitted
Add LogicD.arithmetical_completeness statement (arithmetic part left as sorry)
Ports the Kripke-semantic half of the completeness proof (contrapose, finite countermodel via LogicGL.iff_forces_root, subfmlsD-based ha) from an earlier WIP predating the SeqPL -> ProvabilityLogic rename. The D-analogue of the Solovay sentence construction needed to close the proof after `ha` is not yet formalized. Co-Authored-By: Claude <noreply@anthropic.com>
1 parent 5665b06 commit 3523886

1 file changed

Lines changed: 30 additions & 0 deletions

File tree

ProvabilityLogic/ProvabilityLogic/D/Basic.lean

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ Main definitions and results:
1616
`Rfn_Γₙ(T) = { Pr_T(σ) 🡒 σ | σ a Γₙ-sentence }`.
1717
- `LogicD.arithmetical_soundness` (the `⊇` half): if `A ∈ LogicD` then
1818
`(T ∪ T.localReflection 𝚺 1) ⊢ f A` for every standard realization `f` for `T`.
19+
- `LogicD.arithmetical_completeness` (the `⊆` half): if `(T ∪ T.localReflection 𝚺 1) ⊢ f A`
20+
for every standard realization `f` for `T`, then `A ∈ LogicD`; `sorry` for now.
1921
- `LO.FirstOrder.ArithmeticTheory.unbounded_localReflection`: the instance of the
2022
unboundedness theorem ([AB05] Theorem 23) needed for the `⊆` half; `sorry` for now.
2123
- `LogicD.eq_provabilityLogicRelativeTo_localReflection`: the resulting equality
@@ -29,6 +31,7 @@ Main definitions and results:
2931
open LO
3032
open LO.Entailment
3133
open LO.FirstOrder LO.FirstOrder.ProvabilityAbstraction
34+
open Model Model.World
3235

3336
namespace LogicD
3437

@@ -71,6 +74,33 @@ section completeness
7174

7275
variable [DecidableEq α]
7376

77+
/--
78+
**Arithmetical completeness of `D`**: if `A` is provable, under every standard
79+
realization for `T`, in `T` extended by the local `𝚺₁`-reflection schema for `T`, then
80+
`A ∈ D`.
81+
82+
The arithmetical construction (a `D`-analogue of the Solovay sentences used for
83+
`LogicS.arithmetical_completeness`) is not yet formalized.
84+
85+
- [AB05, Example 60 (completeness half)]
86+
-/
87+
theorem arithmetical_completeness
88+
(H : ∀ f : StandardRealization α T, T ∪ T.localReflection 𝚺 1 ⊢ f A) : A ∈ LogicD := by
89+
-- If `A ∉ LogicD` then by `iff_provable_D_provable_GL` the formula `⋀A.subfmlsD 🡒 A`
90+
-- is not provable in `GL`, so there is a finite rooted GL countermodel whose root
91+
-- forces all axiom `D` instances built from subformulas of `A` but refutes `A`.
92+
contrapose! H;
93+
replace H := LogicGL.iff_forces_root.not.mp $ iff_provable_D_provable_GL.not.mp H;
94+
push Not at H;
95+
obtain ⟨κ, _, M, _, hA⟩ := H;
96+
haveI : Fintype M.World := Fintype.ofFinite _;
97+
obtain ⟨hA₁, hA₂⟩ := not_forces_imp.mp hA;
98+
have ha : ∀ Γ ⊆ A.subfmls.prebox, M.root.1 ⊩ (Formula.box (⋁Γ.box) 🡒 ⋁Γ.box) := by
99+
intro Γ hΓ;
100+
exact forces_fconj.mp hA₁ _
101+
(by simp only [Formula.subfmlsD, Finset.mem_image, Finset.mem_powerset]; exact ⟨Γ, hΓ, rfl⟩);
102+
sorry;
103+
74104
/-- The provability logic of `T` relative to `T + Rfn_Σ₁(T)` has trace `ω`. -/
75105
lemma trace_univ_provabilityLogicRelativeTo_localReflection :
76106
(T.provabilityLogicRelativeTo (T ∪ T.localReflection 𝚺 1) : Logic α).trace = Set.univ := by

0 commit comments

Comments
 (0)