Theory TestsHOMLinS4
subsection‹TestsHOMLinS4.thy›
text‹Tests and verifications of properties for the embedding of HOML (S4) in HOL.›
theory TestsHOMLinS4 imports HOMLinHOLonlyS4
begin
lemma axM: "⌊❙□φ ❙⊃ φ⌋" using Rrefl by blast
lemma axD: "⌊❙□φ ❙⊃ ❙◇φ⌋" using Rrefl by blast
lemma axB: "⌊φ ❙⊃ ❙□❙◇φ⌋"
nitpick[expect=genuine] oops
lemma ax4: "⌊❙□φ ❙⊃ ❙□❙□φ⌋" using Rtrans by blast
lemma ax5: "⌊❙◇φ ❙⊃ ❙□❙◇φ⌋"
nitpick[expect=genuine] oops
lemma BarcanAct: "⌊(❙∀⇧Ex.❙□(φ x)) ❙⊃ ❙□(❙∀⇧Ex.(φ x))⌋"
nitpick[expect=genuine] oops
lemma ConvBarcanAct: "⌊❙□(❙∀⇧Ex.(φ x)) ❙⊃ (❙∀⇧Ex.❙□(φ x))⌋"
nitpick[expect=genuine] oops
lemma BarcanPoss: "⌊(❙∀x.❙□(φ x)) ❙⊃ ❙□(❙∀x. φ x)⌋" by blast
lemma ConvBarcanPoss: "⌊❙□(❙∀x.(φ x)) ❙⊃ (❙∀x.❙□(φ x))⌋" by blast
lemma Hilbert_A1: "⌊A ❙⊃ (B ❙⊃ A)⌋" by blast
lemma Hilbert_A2: "⌊(A ❙⊃ (B ❙⊃ C)) ❙⊃ ((A ❙⊃ B) ❙⊃ (A ❙⊃ C))⌋" by blast
lemma Hilbert_MP: assumes "⌊A⌋" and "⌊A ❙⊃ B⌋" shows "⌊B⌋" using assms by blast
lemma Quant_1: assumes "⌊A⌋" shows "⌊❙∀x::'a. A⌋" using assms by auto
lemma ExImPossibilist1: "⌊❙∃x::e. x ❙= x⌋" by blast
lemma ExImPossibilist2: "⌊❙∃x::e. x ❙≡ x⌋" by blast
lemma ExImPossibilist3: "⌊❙∃x::e. x ❙= t⌋" by blast
lemma ExImPossibilist4: "⌊❙∃x::'a. x ❙≡ t::'a⌋" by blast
lemma ExImPossibilist: "⌊❙∃x::'a. ❙⊤⌋" by blast
lemma Quant_2: assumes "⌊A⌋" shows "⌊❙∀⇧Ex::e. A⌋" using assms by auto
lemma ExImActualist1: "⌊❙∃⇧Ex::e. x ❙= x⌋"
nitpick[card=1,expect=genuine] oops
lemma ExImActualist2: "⌊❙∃⇧Ex::e. x ❙≡ x⌋"
nitpick[card=1,expect=genuine] oops
lemma ExImActualist3: "⌊❙∃⇧Ex::e. x ❙= t⌋"
nitpick[card=1,expect=genuine] oops
lemma ExImActualist: "⌊❙∃⇧Ex::e. ❙⊤⌋"
nitpick[card=1,expect=genuine] oops
lemma EqRefl: "⌊x ❙= x⌋" by blast
lemma EqSym: "⌊(x ❙= y) ❙↔ (y ❙= x)⌋" by blast
lemma EqTrans: "⌊((x ❙= y) ❙∧ (y ❙= z)) ❙⊃ (x ❙= z)⌋" by blast
lemma EQCong: "⌊(x ❙= y) ❙⊃ ((φ x) ❙= (φ y))⌋" by blast
lemma EQFuncExt: "⌊(φ ❙= ψ) ❙⊃ (❙∀x. ((φ x) ❙= (ψ x)))⌋" by blast
lemma EQBoolExt1: "⌊(φ ❙= ψ) ❙⊃ (φ ❙↔ ψ)⌋" by blast
lemma EQBoolExt2: "⌊(φ ❙↔ ψ) ❙⊃ (φ ❙= ψ)⌋"
nitpick[card=2] oops
lemma EQBoolExt3: "⌊(φ ❙↔ ψ)⌋ ⟶ ⌊(φ ❙= ψ)⌋" by blast
lemma EqPrimLeib: "⌊(x ❙= y) ❙↔ (x ❙≡ y)⌋" by auto
lemma Comprehension1: "⌊❙∃φ. ❙∀x. (φ x) ❙↔ A⌋" by force
lemma Comprehension2: "⌊❙∃φ. ❙∀x. (φ x) ❙↔ (A x)⌋" by force
lemma Comprehension3: "⌊❙∃φ. ❙∀x y. (φ x y) ❙↔ (A x y)⌋" by force
lemma ModalCollapse: "⌊❙∀φ. φ ❙⊃ ❙□φ⌋"
nitpick[card=2,expect=genuine] oops
lemma TruePropertyAndSelfIdentity: "⌊(λx::e. ❙⊤) ❙= (λx. x ❙= x)⌋" by blast
lemma EmptyPropertyAndSelfDifference: "⌊(λx::e. ❙⊥) ❙= (λx. x ❙≠ x)⌋" by blast
lemma EmptyProperty2: "⌊❙∃x. φ x⌋ ⟶ ⌊φ ❙≠ (λx::e. ❙⊥)⌋" by blast
lemma EmptyProperty3: "⌊❙∃⇧Ex. φ x⌋ ⟶ ⌊φ ❙≠ (λx::e. ❙⊥)⌋" by blast
lemma EmptyProperty4: "⌊φ ❙≠ (λx::e. ❙⊥)⌋ ⟶ ⌊❙∃x. φ x⌋"
nitpick[expect=genuine] oops
lemma EmptyProperty5: "⌊φ ❙≠ (λx::e. ❙⊥)⌋ ⟶ ⌊❙∃⇧Ex. φ x⌋"
nitpick[expect=genuine] oops
end