Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/Isabelle/Doc/Tutorial/Sets/   (Beweissystem Isabelle Version 2025-1©)  Datei vom 16.11.2025 mit Größe 4 kB image not shown  

Quelle  Examples.thy   Sprache: Isabelle

 
theory Examples imports Complex_Main begin

declare [[eta_contract = false]]

textmembership, intersection
textdifference and empty set
textcomplement, union and universal set

lemma "(x \ A \ B) = (x \ A \ x \ B)"
by blast

text
@{thm[display] IntI[no_vars]}
\rulename{IntI}

@{thm[display] IntD1[no_vars]}
\rulename{IntD1}

@{thm[display] IntD2[no_vars]}
\rulename{IntD2}


lemma "(x \ -A) = (x \ A)"
by blast

text
@{thm[display] Compl_iff[no_vars]}
\rulename{Compl_iff}


lemma "- (A \ B) = -A \ -B"
by blast

text
@{thm[display] Compl_Un[no_vars]}
\rulename{Compl_Un}


lemma "A-A = {}"
by blast

text
@{thm[display] Diff_disjoint[no_vars]}
\rulename{Diff_disjoint}




lemma "A \ -A = UNIV"
by blast

text
@{thm[display] Compl_partition[no_vars]}
\rulename{Compl_partition}


textsubset relation


text
@{thm[display] subsetI[no_vars]}
\rulename{subsetI}

@{thm[display] subsetD[no_vars]}
\rulename{subsetD}


lemma "((A \ B) \ C) = (A \ C \ B \ C)"
by blast

text
@{thm[display] Un_subset_iff[no_vars]}
\rulename{Un_subset_iff}


lemma "(A \ -B) = (B \ -A)"
by blast

lemma "(A <= -B) = (B <= -A)"
  oops

textASCII version: blast fails because of overloading because
 it doesn't have to be sets\

lemma "((A:: 'a set) <= -B) = (B <= -A)"
by blast

textA type constraint lets it work

textAn issue here: how do we discuss the distinction between ASCII and
symbol notation?  Here the latter disambiguates.


text
set extensionality

@{thm[display] set_eqI[no_vars]}
\rulename{set_eqI}

@{thm[display] equalityI[no_vars]}
\rulename{equalityI}

@{thm[display] equalityE[no_vars]}
\rulename{equalityE}



textfinite sets: insertion and membership relation
textfinite set notation

lemma "insert x A = {x} \ A"
by blast

text
@{thm[display] insert_is_Un[no_vars]}
\rulename{insert_is_Un}


lemma "{a,b} \ {c,d} = {a,b,c,d}"
by blast

lemma "{a,b} \ {b,c} = {b}"
apply auto
oops
textfails because it isn't valid\

lemma "{a,b} \ {b,c} = (if a=c then {a,b} else {b})"
apply simp
by blast

textor just force or auto.  blast alone can't handle the if-then-else\

textnext: some comprehension examples

lemma "(a \ {z. P z}) = P a"
by blast

text
@{thm[display] mem_Collect_eq[no_vars]}
\rulename{mem_Collect_eq}


lemma "{x. x \ A} = A"
by blast

text
@{thm[display] Collect_mem_eq[no_vars]}
\rulename{Collect_mem_eq}


lemma "{x. P x \ x \ A} = {x. P x} \ A"
by blast

lemma "{x. P x \ Q x} = -{x. P x} \ {x. Q x}"
by blast

definition prime :: "nat set" where
    "prime == {p. 1

m. m dvd p \ m=1 \ m=p)}"

lemma "{p*q | p q. p\prime \ q\prime} =
       {z. p q. z = p*q  pprime  qprime}"
by (rule refl)

textbinders

textbounded quantifiers

lemma "(\x\A. P x) = (\x. x\A \ P x)"
by blast

text
@{thm[display] bexI[no_vars]}
\rulename{bexI}


text
@{thm[display] bexE[no_vars]}
\rulename{bexE}


lemma "(\x\A. P x) = (\x. x\A \ P x)"
by blast

text
@{thm[display] ballI[no_vars]}
\rulename{ballI}


text
@{thm[display] bspec[no_vars]}
\rulename{bspec}


textindexed unions and variations

lemma "(\x. B x) = (\x\UNIV. B x)"
by blast

text
@{thm[display] UN_iff[no_vars]}
\rulename{UN_iff}


text
@{thm[display] Union_iff[no_vars]}
\rulename{Union_iff}


lemma "(\x\A. B x) = {y. \x\A. y \ B x}"
by blast

lemma "\S = (\x\S. x)"
by blast

text
@{thm[display] UN_I[no_vars]}
\rulename{UN_I}


text
@{thm[display] UN_E[no_vars]}
\rulename{UN_E}


textindexed intersections

lemma "(\x. B x) = {y. \x. y \ B x}"
by blast

text
@{thm[display] INT_iff[no_vars]}
\rulename{INT_iff}


text
@{thm[display] Inter_iff[no_vars]}
\rulename{Inter_iff}


textmention also card, Pow, etc.


text
@{thm[display] card_Un_Int[no_vars]}
\rulename{card_Un_Int}

@{thm[display] card_Pow[no_vars]}
\rulename{card_Pow}

@{thm[display] n_subsets[no_vars]}
\rulename{n_subsets}


end


Messung V0.5
C=93 H=93 G=92

¤ Dauer der Verarbeitung: 0.5 Sekunden  ¤

*© 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.