-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
117 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,117 @@ | ||
import Incompleteness.DC.Basic | ||
import Logic.Modal.Standard.Deduction | ||
|
||
namespace LO.Modal.Standard.Provability | ||
|
||
open LO.FirstOrder LO.FirstOrder.DerivabilityCondition | ||
|
||
variable {ฮฑ : Type*} [DecidableEq ฮฑ] | ||
|
||
/-- Mapping modal prop vars to first-order sentence -/ | ||
def realization (L) (ฮฑ : Type u) := ฮฑ โ FirstOrder.Sentence L | ||
|
||
/-- Mapping modal formulae to first-order sentence -/ | ||
def interpretation | ||
[Semiterm.Operator.GoedelNumber L (FirstOrder.Sentence L)] | ||
(f : realization L ฮฑ) (๐ : ProvabilityPredicate L L) : Formula ฮฑ โ FirstOrder.Sentence L | ||
| .atom a => f a | ||
| โกp => โฆ๐โฆ(interpretation f ๐ p) | ||
| โฅ => โฅ | ||
| p โถ q => (interpretation f ๐ p) โถ (interpretation f ๐ q) | ||
scoped notation f "[" ๐ "] " p => interpretation f ๐ p -- TODO: more good notation | ||
|
||
namespace interpretation | ||
|
||
variable [Semiterm.Operator.GoedelNumber L (FirstOrder.Sentence L)] | ||
{f : realization L ฮฑ} {๐ : ProvabilityPredicate L L} {p q : Formula ฮฑ} | ||
[NegAbbrev (FirstOrder.Sentence L)] | ||
|
||
lemma imp_def : (f[๐] (p โถ q)) = ((f[๐] p) โถ (f[๐] q)) := by rfl | ||
lemma box_def : (f[๐] โกp) = โฆ๐โฆ(f[๐] p) := by rfl | ||
lemma neg_def : (f[๐] ~p) = (f[๐] p) โถ โฅ := by rfl | ||
|
||
end interpretation | ||
|
||
/- | ||
TODO: | ||
`ArithmeticalSoundness`ใจ`ArithmeticalCompleteness`ใๅ็ดใซinstanceๅใใ้ใซใฏๅคงๆต`Tโ`ใซไพๅญใใฆใใพใใใๅๆจ่ซใๅฃใใฆใใพใ๏ผ | ||
ใใๅฐใ่ฏใใใๆนใใใใใใชๆฐใใใใฎใงไธๆฆใณใกใณใใขใฆใ | ||
section | ||
variable {L : FirstOrder.Language} [Semiterm.Operator.GoedelNumber L (Sentence L)] | ||
variable (ฮฑ) (๐ : ProvabilityPredicate L L) | ||
class ArithmeticalSoundness (๐ : DeductionParameter ฮฑ) (T : FirstOrder.Theory L) where | ||
sound : โ {p}, (๐ โข! p) โ (โ f, T โข! f[๐] p) | ||
class ArithmeticalCompleteness (๐ : DeductionParameter ฮฑ) (T : FirstOrder.Theory L) where | ||
complete : โ {p}, (โ f, T โข! f[๐] p) โ (๐ โข! p) | ||
class ProvabilityLogic (๐ : DeductionParameter ฮฑ) (T : FirstOrder.Theory L)where | ||
is : System.theory ๐ = { p | โ f, T โข! f[๐] p } | ||
variable {ฮฑ ๐} {๐ : DeductionParameter ฮฑ} {T : FirstOrder.Theory L} | ||
instance [ArithmeticalSoundness ฮฑ ๐ ๐ T] [ArithmeticalCompleteness ฮฑ ๐ ๐ T] : ProvabilityLogic ฮฑ ๐ ๐ T where | ||
is := by | ||
apply Set.eq_of_subset_of_subset; | ||
. intro p hp; | ||
simp only [Set.mem_setOf_eq]; | ||
exact ArithmeticalSoundness.sound hp; | ||
. intro p hp; | ||
simp at hp; | ||
exact ArithmeticalCompleteness.complete hp; | ||
end | ||
-/ | ||
|
||
section ArithmeticalSoundness | ||
|
||
open System | ||
open ProvabilityPredicate | ||
|
||
variable {L : FirstOrder.Language} [Semiterm.Operator.GoedelNumber L (Sentence L)] | ||
[DecidableEq (Sentence L)] | ||
(Tโ T : FirstOrder.Theory L) [Tโ โผ T] [Diagonalization Tโ] | ||
(๐ : ProvabilityPredicate L L) | ||
|
||
lemma arithmetical_soundness_K4Loeb [๐.HBL Tโ T] (h : ๐๐(๐) โข! p) : โ {f : realization L ฮฑ}, T โข!. (f[๐] p) := by | ||
intro f; | ||
induction h using Deduction.inducition! with | ||
| hRules rl hrl hant ih => | ||
rcases hrl with (โจ_, rflโฉ | โจ_, rflโฉ) | ||
. simp_all only [List.mem_singleton, forall_eq]; exact D1s (Tโ := Tโ) ih; | ||
. simp_all only [List.mem_singleton, forall_eq]; exact Loeb.LT Tโ ih; | ||
| hMaxm hp => | ||
rcases hp with (โจ_, _, rflโฉ | โจ_, rflโฉ) | ||
. exact D2s (Tโ := Tโ); | ||
. exact D3s (Tโ := Tโ); | ||
| hMdp ihpq ihp => | ||
simp [interpretation] at ihpq; | ||
exact ihpq โจ ihp; | ||
| _ => dsimp [interpretation]; trivial; | ||
|
||
theorem arithmetical_soundness_GL [๐.HBL Tโ T] (h : ๐๐ โข! p) : โ {f : realization L ฮฑ}, T โข!. (f[๐] p) := by | ||
apply arithmetical_soundness_K4Loeb (Tโ := Tโ); | ||
exact (System.weakerThan_iff.mp reducible_GL_K4Loeb) h; | ||
|
||
|
||
lemma arithmetical_soundness_N [๐.HBL Tโ T] (h : ๐ โข! p) : โ {f : realization L ฮฑ}, T โข!. (f[๐] p) := by | ||
intro f; | ||
induction h using Deduction.inducition! with | ||
| hMaxm hp => simp at hp; | ||
| hRules rl hrl hant ih => | ||
simp only [Set.mem_setOf_eq] at hrl; | ||
obtain โจp, rflโฉ := hrl; | ||
simp_all only [List.mem_singleton, forall_eq]; | ||
exact D1s (Tโ := Tโ) ih; | ||
| hMdp ihpq ihp => | ||
simp only [interpretation] at ihpq; | ||
exact ihpq โจ ihp; | ||
| _ => dsimp [interpretation]; trivial; | ||
|
||
end ArithmeticalSoundness | ||
|
||
end Modal.Standard.Provability | ||
|
||
end LO |