Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/Isabelle/Archive-of-Formal-Proofs/thys/Completeness/   (Sammlung formaler Beweise Version 2026-5©)  Datei vom 29.4.2026 mit Größe 3 kB image not shown  

Quelle  Soundness.thy

  Sprache: Isabelle
 

section "Soundness"

theory Soundness imports Completeness begin

lemma permutation_validS: "mset fs = mset gs ==> (validS fs = validS gs)"
  unfolding validS_def evalS_def
  using mset_eq_setD by blast

lemma modelAssigns_vblcase:  modelAssigns M ==> x objects M ==> vblcase x φ modelAssigns M"
  unfolding modelAssigns_def mem_Collect_eq
  by (smt (verit) image_subset_iff mem_Collect_eq range_subsetD vbl_cases
      vblcase_nextX vblcase_zeroX)

lemma soundnessFAll:
    assumes "u freeVarsFL (FAll Pos A # Gamma)"
    and "validS (instanceF u A # Gamma)"
  shows "validS (FAll Pos A # Gamma)"
unfolding validS_def
proof (intro strip)
  fix M φ
  assume φ:  modelAssigns M"
  have "evalF M (vblcase x φ) A" 
    if x: "x objects M" and "¬ evalS M φ Gamma" 
    for x
  proof -
    have "evalF M (vblcase x (λy. if y = u then x else φ y)) A"
    proof -
      have "evalF M (vblcase x (λy. if y = u then x else φ y)) A
           evalS M (λy. if y = u then x else φ y) Gamma"
        using φ assms(2) evalF_instance image_subset_iff validS_def x by fastforce
      then show ?thesis
        using assms(1) equalOn_def evalS_equiv freeVarsFL_cons that(2by fastforce
    qed
    moreover
    have "equalOn (freeVarsF A) (vblcase x (λy. if y = u then x else φ y))
     (vblcase x φ)"
      by (smt (verit, best) Un_iff assms(1) equalOn_def equalOn_vblcaseI' freeVarsFAll
          freeVarsFL_cons)
    ultimately show ?thesis
      using evalF_equiv by force
  qed 
  then show "evalS M φ (FAll Pos A # Gamma) = True"
    by auto
qed

lemma soundnessFEx: "validS (instanceF x A # Gamma) ==> validS (FAll Neg A # Gamma)"
  unfolding validS_def
  by (metis evalF_FEx evalF_instance evalS_cons modelAssigns_iff range_subsetD)

lemma soundnessFCut: "[validS (C # Gamma); validS (FNot C # Delta)] ==> validS (Gamma @ Delta)"
  using evalF_FNot evalS_append validS_def by auto

lemma soundness: "fs : deductions(PC) ==> validS fs"  
proof (induction fs rule: deductions.induct)
  case (inferI conc prems)
  then have vS: "x prems. validS x"
    by auto
  have "validS conc"
    if 🍋"(conc, prems) Perms"
  proof -
    obtain Δ where Δ: "prems = {Δ}"
      using 🍋 vS by (auto simp: Perms_def)
    then have "mset conc = mset Δ"
      using Perms_def that by fastforce
    with Δ permutation_validS vS show ?thesis
      by blast
  qed
  moreover have "validS conc"
    if "(conc, prems) Axioms"
    using that by (auto simp add: Axioms_def validS_def)
  moreover have "validS conc"
    if "(conc, prems) Conjs"
    using that vS inferI apply (simp add: validS_def Conjs_def)
    by (metis evalFConj evalS_append evalS_cons insertCI sign.simps(1))
  moreover have "validS conc"
    if "(conc, prems) Disjs"
    using that vS inferI by (fastforce simp add: validS_def Disjs_def)
  moreover have "validS conc"
    if "(conc, prems) Alls"
    using that vS inferI soundnessFAll 
    by (force simp add: validS_def Alls_def subset_iff)
  moreover have "validS conc"
    if "(conc, prems) Exs"
    using that vS inferI soundnessFEx
    by (force simp add: validS_def Exs_def subset_iff)
  moreover have "validS conc"
    if "(conc, prems) Weaks"
    using that vS by(force simp: Weaks_def validS_def evalS_def)
  moreover have "validS conc"
    if "(conc, prems) Contrs"
    using that vS by(fastforce simp add: Contrs_def validS_def evalS_def)
  moreover have "validS conc"
    if "(conc, prems) Cuts"
    using that vS by (force simp add: Cuts_def soundnessFCut)
  ultimately show ?case
    using inferI.hyps
    by (auto simp: PC_def subset_iff)
qed

theorem completeness: "fs deductions (PC) validS fs"
  using adequacy mono_deductions rulesInPCs(18) soundness by blast

end

Messung V0.5 in Prozent
C=57 H=93 G=76

¤ Dauer der Verarbeitung: 0.10 Sekunden  (vorverarbeitet am  2026-06-10) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.