Theory PMLinHOL_deep_tests

section‹Appendix: proof automation tests\label{sec:automation_tests}›
subsection‹Tests with the deep embedding›

theory PMLinHOL_deep_tests   (* Christoph Benzmüller, 2025 *)
  imports PMLinHOL_deep                                               
begin   

―‹Hilbert calculus: proving that the schematic axioms and rules implied by the embedding›
lemma H1: "d φ d (ψ d φ)" by auto
lemma H2: "d (φ d (ψ d γ)) d ((φ d ψ) d (φ d γ)) " by auto
lemma H3: "d (¬dφ  d ¬dψ) d (ψ d φ)" by auto
lemma MP: "d φ  d (φ  d ψ)  d ψ" by auto

―‹Reasoning with the Hilbert calculus: interactive and fully automated›
lemma HCderived1: "d (φ d φ)" ―‹sledgehammer(HC1 HC2 HC3 MP) returns: by (metis HC1 HC2 MP)›  
proof -  
  have 1: "d φ d ((ψ d φ) d φ)" using H1 by auto 
  have 2: "d (φ d ((ψ d φ) d φ)) d ((φ d (ψ d φ)) d (φ d φ))" using H2 by auto 
  have 3: "d (φ d (ψ d φ)) d (φ d φ)" using 1 2 MP by meson
  have 4: "d φ d (ψ  d φ)" using H1 by auto 
  thus ?thesis using 3 4 MP by meson 
qed

lemma HCderived2: "d φ d (¬dφ  d ψ) " by (metis H1 H2 H3 MP) 
lemma HCderived3: "d (¬dφ  d φ) d φ" by (metis H1 H2 H3 MP) 
lemma HCderived4: "d (φ d ψ) d (¬dψ d ¬dφ) " by auto   

―‹Modal logic: the schematic necessitation rule and distribution axiom are implied›
lemma Nec: "d φ  d dφ" by auto
lemma Dist:  "d d(φ d ψ) d (dφ d dψ) " by auto

―‹Correspondence theory: correct statements›
lemma cM:  "reflexive R  (φ W V. w:W. W,R,V⟩,w d dφ d φ)" ―‹sledgehammer: Proof found› oops (**)
lemma cBa: "symmetric R  (φ W V. w:W. W,R,V⟩,w d φ d d(dφ))" by auto 
(**)lemma cBb: "symmetric R  (φ W V. w:W. W,R,V⟩,w d φ d d(dφ))" ―‹sledgehammer: No proof› oops
lemma c4a: "transitive R  (φ W V. w:W. W,R,V⟩,w d dφ d d(dφ))" by (metis RelativeTruthD.simps)  
(**)lemma c4b: "transitive R  (φ W V. w:W. W,R,V⟩,w d dφ d d(dφ))" ―‹sledgehammer: No proof› oops

―‹Correspondence theory: incorrect statements›
lemma "reflexive R  (φ W V. w:W. W,R,V⟩,w d dφ d d(dφ))" nitpick[card 𝗐=3] oops ―‹nitpick: Cex.›

―‹Simple, incorrect validity statements›
lemma "d φ d dφ" nitpick[card 𝗐=2, card 𝒮= 1] oops ―‹nitpick: Counterexample: modal collapse not implied›
lemma "d d( dφ d  dψ) d d( dψ d  dφ)" nitpick[card 𝗐=3] oops ―‹nitpick: Counterexample›
lemma "d (d(d φ)) d  d(d φ)" nitpick[card 𝗐=2] oops ―‹nitpick: Counterexample› 

―‹Implied axiom schemata in S5›
lemma KB: "symmetric R  (φ ψ W V. w:W. W,R,V⟩,w d (d(dφ)) d  d(dφ))" by auto
lemma K4B: "symmetric R  transitive R  (φ ψ W V. w:W. W,R,V⟩,w d d( dφ d  dψ) d d( dψ d  dφ))" by (smt OrD_def RelativeTruthD.simps)
end