doc-src/TutorialI/Sets/sets.tex
changeset 14393 71dff3bade66
parent 13814 5402c2eaf393
child 14481 ab1e47451aaa
equal deleted inserted replaced
14392:386760e88462 14393:71dff3bade66
   297 Unions can be formed over the values of a given  set.  The syntax is
   297 Unions can be formed over the values of a given  set.  The syntax is
   298 \mbox{\isa{\isasymUnion x\isasymin A.\ B}} or \isa{UN
   298 \mbox{\isa{\isasymUnion x\isasymin A.\ B}} or \isa{UN
   299 x\isasymin A.\ B} in \textsc{ascii}. Indexed union satisfies this basic law:
   299 x\isasymin A.\ B} in \textsc{ascii}. Indexed union satisfies this basic law:
   300 \begin{isabelle}
   300 \begin{isabelle}
   301 (b\ \isasymin\
   301 (b\ \isasymin\
   302 (\isasymUnion x\isasymin A.\ B\ x))\ =\ (\isasymexists x\isasymin A.\
   302 (\isasymUnion \isactrlbsub x\isasymin A\isactrlesub \ B\ x) =\ (\isasymexists x\isasymin A.\
   303 b\ \isasymin\ B\ x)
   303 b\ \isasymin\ B\ x)
   304 \rulenamedx{UN_iff}
   304 \rulenamedx{UN_iff}
   305 \end{isabelle}
   305 \end{isabelle}
   306 It has two natural deduction rules similar to those for the existential
   306 It has two natural deduction rules similar to those for the existential
   307 quantifier.  Sometimes \isa{UN_I} must be applied explicitly:
   307 quantifier.  Sometimes \isa{UN_I} must be applied explicitly:
   308 \begin{isabelle}
   308 \begin{isabelle}
   309 \isasymlbrakk a\ \isasymin\
   309 \isasymlbrakk a\ \isasymin\
   310 A;\ b\ \isasymin\
   310 A;\ b\ \isasymin\
   311 B\ a\isasymrbrakk\ \isasymLongrightarrow\
   311 B\ a\isasymrbrakk\ \isasymLongrightarrow\
   312 b\ \isasymin\
   312 b\ \isasymin\
   313 ({\isasymUnion}x\isasymin A.\
   313 (\isasymUnion \isactrlbsub x\isasymin A\isactrlesub \ B\ x)
   314 B\ x)
       
   315 \rulenamedx{UN_I}%
   314 \rulenamedx{UN_I}%
   316 \isanewline
   315 \isanewline
   317 \isasymlbrakk b\ \isasymin\
   316 \isasymlbrakk b\ \isasymin\
   318 ({\isasymUnion}x\isasymin A.\
   317 (\isasymUnion \isactrlbsub x\isasymin A\isactrlesub \ B\ x);\
   319 B\ x);\
       
   320 {\isasymAnd}x.\ {\isasymlbrakk}x\ \isasymin\
   318 {\isasymAnd}x.\ {\isasymlbrakk}x\ \isasymin\
   321 A;\ b\ \isasymin\
   319 A;\ b\ \isasymin\
   322 B\ x\isasymrbrakk\ \isasymLongrightarrow\
   320 B\ x\isasymrbrakk\ \isasymLongrightarrow\
   323 R\isasymrbrakk\ \isasymLongrightarrow\ R%
   321 R\isasymrbrakk\ \isasymLongrightarrow\ R%
   324 \rulenamedx{UN_E}
   322 \rulenamedx{UN_E}
   327 The following built-in syntax translation (see {\S}\ref{sec:syntax-translations})
   325 The following built-in syntax translation (see {\S}\ref{sec:syntax-translations})
   328 lets us express the union over a \emph{type}:
   326 lets us express the union over a \emph{type}:
   329 \begin{isabelle}
   327 \begin{isabelle}
   330 \ \ \ \ \
   328 \ \ \ \ \
   331 ({\isasymUnion}x.\ B\ x)\ {\isasymrightleftharpoons}\
   329 ({\isasymUnion}x.\ B\ x)\ {\isasymrightleftharpoons}\
   332 ({\isasymUnion}x{\isasymin}UNIV.\ B\ x)
   330 ({\isasymUnion}\isactrlbsub x{\isasymin}UNIV\isactrlesub\ B\ x)
   333 \end{isabelle}
   331 \end{isabelle}
   334 %Abbreviations work as you might expect.  The term on the left-hand side of
   332 %Abbreviations work as you might expect.  The term on the left-hand side of
   335 %the \isasymrightleftharpoons\ symbol is automatically translated to the right-hand side when the
   333 %the \isasymrightleftharpoons\ symbol is automatically translated to the right-hand side when the
   336 %term is parsed, the reverse translation being done when the term is
   334 %term is parsed, the reverse translation being done when the term is
   337 %displayed.
   335 %displayed.
   349 than unions.  The syntax below would be \isa{INT
   347 than unions.  The syntax below would be \isa{INT
   350 x:\ A.\ B} and \isa{Inter\ C} in \textsc{ascii}.  Among others, these
   348 x:\ A.\ B} and \isa{Inter\ C} in \textsc{ascii}.  Among others, these
   351 theorems are available:
   349 theorems are available:
   352 \begin{isabelle}
   350 \begin{isabelle}
   353 (b\ \isasymin\
   351 (b\ \isasymin\
   354 ({\isasymInter}x\isasymin A.\
   352 (\isasymInter \isactrlbsub x\isasymin A\isactrlesub \ B\ x))\
   355 B\ x))\
       
   356 =\
   353 =\
   357 ({\isasymforall}x\isasymin A.\
   354 ({\isasymforall}x\isasymin A.\
   358 b\ \isasymin\ B\ x)
   355 b\ \isasymin\ B\ x)
   359 \rulenamedx{INT_iff}%
   356 \rulenamedx{INT_iff}%
   360 \isanewline
   357 \isanewline
  1069 is perhaps the best-known concept defined as a
  1066 is perhaps the best-known concept defined as a
  1070 greatest fixed point.  Exhibiting a bisimulation to prove the equality of
  1067 greatest fixed point.  Exhibiting a bisimulation to prove the equality of
  1071 two agents in a process algebra is an example of coinduction.
  1068 two agents in a process algebra is an example of coinduction.
  1072 The coinduction rule can be strengthened in various ways.
  1069 The coinduction rule can be strengthened in various ways.
  1073 \index{fixed points|)}
  1070 \index{fixed points|)}
       
  1071 
       
  1072 %The section "Case Study: Verified Model Checking" is part of this chapter
       
  1073 \input{CTL/ctl}  
       
  1074 \endinput