Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Quelle  TAO_6_Identifiable.thy  Sprache: unbekannt

 
(*<*)
theory TAO_6_Identifiable
imports TAO_5_MetaSolver
begin
(*>*)

section‹General Identity›
text‹\label{TAO_Identifiable}›

text‹
 begin{remark}
 In order to define a general identity symbol that can act
 on all types of terms a type class is introduced
 which assumes the substitution property which
 is needed to derive the corresponding axiom.
 This type class is instantiated for all relation types, individual terms
 and individuals.
 end{remark}
 
›

subsection‹Type Classes›
text‹\label{TAO_Identifiable_Class}›

class identifiable =
fixes identity :: "'a→'a→o" (infixl ‹=› 63)
assumes l_identity:
  "w ⊨ x = y ==> w ⊨ φ x ==> w ⊨ φ y"
begin
  abbreviation notequal (infixl ‹\≠› 63) where
    "notequal ≡ λ x y . \<not>(x = y)"
end

class quantifiable_and_identifiable = quantifiable + identifiable
begin
  definition exists_unique::"('a→o)→o" (binder ‹\∃!› [8] 9) where
    "exists_unique ≡ λ φ . \<exists> α . φ α & (\<forall>β. φ β \<rightarrow> β = α)"
  
  declare exists_unique_def[conn_defs]
end

subsection‹Instantiations›
text‹\label{TAO_Identifiable_Instantiation}›

instantiation κ :: identifiable
begin
  definition identity_κ where "identity_κ ≡ basic_identity\<kappa>"
  instance proof
    fix x y :: κ and w φ
    show "[x = y in w] ==> [φ x in w] ==> [φ y in w]"
      unfolding identity_κ_def
      using MetaSolver.Eqκ_prop ..
  qed
end

instantiation ν :: identifiable
begin
  definition identity_ν where "identity_ν ≡ λ x y . xP = yP"
  instance proof
    fix α :: ν and β :: ν and v φ
    assume "v ⊨ α = β"
    hence "v ⊨ αP = βP"
      unfolding identity_ν_def by auto
    hence "∧φ.(v ⊨ φ (αP)) ==> (v ⊨ φ (βP))"
      using l_identity by auto
    hence "(v ⊨ φ (rep (αP))) ==> (v ⊨ φ (rep (βP)))"
      by meson
    thus "(v ⊨ φ α) ==> (v ⊨ φ β)"
      by (simp only: rep_proper_id)
  qed
end

instantiation Π1 :: identifiable
begin
  definition identity_Π1 where "identity_Π1 ≡ basic_identity1"
  instance proof
    fix F G :: Π1 and w φ
    show "(w ⊨ F = G) ==> (w ⊨ φ F) ==> (w ⊨ φ G)"
      unfolding identity_Π1_def using MetaSolver.Eq1_prop ..
  qed
end

instantiation Π2 :: identifiable
begin
  definition identity_Π2 where "identity_Π2 ≡ basic_identity2"
  instance proof
    fix F G :: Π2 and w φ
    show "(w ⊨ F = G) ==> (w ⊨ φ F) ==> (w ⊨ φ G)"
      unfolding identity_Π2_def using MetaSolver.Eq2_prop ..
  qed
end

instantiation Π3 :: identifiable
begin
  definition identity_Π3 where "identity_Π3 ≡ basic_identity3"
  instance proof
    fix F G :: Π3 and w φ
    show "(w ⊨ F = G) ==> (w ⊨ φ F) ==> (w ⊨ φ G)"
      unfolding identity_Π3_def using MetaSolver.Eq3_prop ..
  qed
end

instantiation o :: identifiable
begin
  definition identity_o where "identity_o ≡ basic_identity0"
  instance proof
    fix F G :: o and w φ
    show "(w ⊨ F = G) ==> (w ⊨ φ F) ==> (w ⊨ φ G)"
      unfolding identity_o_def using MetaSolver.Eq0_prop ..
  qed
end

instance ν :: quantifiable_and_identifiable ..
instance Π1 :: quantifiable_and_identifiable ..
instance Π2 :: quantifiable_and_identifiable ..
instance Π3 :: quantifiable_and_identifiable ..
instance o :: quantifiable_and_identifiable ..

subsection‹New Identity Definitions›
text‹\label{TAO_Identifiable_Definitions}›

text‹
 begin{remark}
 The basic definitions of identity use type specific quantifiers
 and identity symbols. Equivalent definitions that
 use the general identity symbol and general quantifiers are provided.
 end{remark}
 
›

named_theorems identity_defs
lemma identityE_def[identity_defs]:
  "basic_identityE ≡ \<lambda>2 (λx y. (O!,xP) & (O!,yP) & \<box>(\<forall>F. (F,xP) \<equiv> (F,yP)))"
  unfolding basic_identityE_def forall_Π1_def by simp
lemma identityE_infix_def[identity_defs]:
  "x =E y ≡ (basic_identityE,x,y)" using basic_identityE_infix_def .
lemma identity\κ_def[identity_defs]:
  "(=) ≡ λx y. x =E y \<or> (A!,x) & (A!,y) & \<box>(\<forall> F. {x,F} \<equiv> {y,F})"
  unfolding identity_κ_def basic_identity\κ_def forall_Π1_def by simp
lemma identity\ν_def[identity_defs]:
  "(=) ≡ λx y. (xP) =E (yP) \<or> (A!,xP) & (A!,yP) & \<box>(\<forall> F. {xP,F} \<equiv> {yP,F})"
  unfolding identity_ν_def identity\κ_def by simp
lemma identity1_def[identity_defs]:
  "(=) ≡ λF G. \<box>(\<forall> x . {xP,F} \<equiv> {xP,G})"
  unfolding identity_Π1_def basic_identity1_def forall_ν_def by simp
lemma identity2_def[identity_defs]:
  "(=) ≡ λF G. \<forall> x. (\<lambda>y. (F,xP,yP)) = (\<lambda>y. (G,xP,yP))
                    & (\<lambda>y. (F,yP,xP)) = (\<lambda>y. (G,yP,xP))"
  unfolding identity_Π2_def identity_Π1_def basic_identity2_def forall_ν_def by simp
lemma identity3_def[identity_defs]:
  "(=) ≡ λF G. \<forall> x y. (\<lambda>z. (F,zP,xP,yP)) = (\<lambda>z. (G,zP,xP,yP))
                      & (\<lambda>z. (F,xP,zP,yP)) = (\<lambda>z. (G,xP,zP,yP))
                      & (\<lambda>z. (F,xP,yP,zP)) = (\<lambda>z. (G,xP,yP,zP))"
  unfolding identity_Π3_def identity_Π1_def basic_identity3_def forall_ν_def by simp
lemma identity\o_def[identity_defs]: "(=) ≡ λF G. (\<lambda>y. F) = (\<lambda>y. G)"
  unfolding identity_o_def identity_Π1_def basic_identity0_def by simp

(*<*)
end
(*>*)

Messung V0.5 in Prozent
C=86 H=100 G=93

[Dauer der Verarbeitung: 0.6 Sekunden, vorverarbeitet 2026-09-28]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Open Source Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Statistik
#Sources=1126438
#Domains=1897691