doc-src/IsarRef/pure.tex
changeset 18544 cbad888756b2
parent 18308 f18a54840629
child 18553 14f24be9e499
equal deleted inserted replaced
18543:e903a1d0bed5 18544:cbad888756b2
   745 
   745 
   746 
   746 
   747 \subsection{Facts and forward chaining}
   747 \subsection{Facts and forward chaining}
   748 
   748 
   749 \indexisarcmd{note}\indexisarcmd{then}\indexisarcmd{from}\indexisarcmd{with}
   749 \indexisarcmd{note}\indexisarcmd{then}\indexisarcmd{from}\indexisarcmd{with}
   750 \indexisarcmd{using}
   750 \indexisarcmd{using}\indexisarcmd{unfolding}
   751 \begin{matharray}{rcl}
   751 \begin{matharray}{rcl}
   752   \isarcmd{note} & : & \isartrans{proof(state)}{proof(state)} \\
   752   \isarcmd{note} & : & \isartrans{proof(state)}{proof(state)} \\
   753   \isarcmd{then} & : & \isartrans{proof(state)}{proof(chain)} \\
   753   \isarcmd{then} & : & \isartrans{proof(state)}{proof(chain)} \\
   754   \isarcmd{from} & : & \isartrans{proof(state)}{proof(chain)} \\
   754   \isarcmd{from} & : & \isartrans{proof(state)}{proof(chain)} \\
   755   \isarcmd{with} & : & \isartrans{proof(state)}{proof(chain)} \\
   755   \isarcmd{with} & : & \isartrans{proof(state)}{proof(chain)} \\
   756   \isarcmd{using} & : & \isartrans{proof(prove)}{proof(prove)} \\
   756   \isarcmd{using} & : & \isartrans{proof(prove)}{proof(prove)} \\
       
   757   \isarcmd{unfolding} & : & \isartrans{proof(prove)}{proof(prove)} \\
   757 \end{matharray}
   758 \end{matharray}
   758 
   759 
   759 New facts are established either by assumption or proof of local statements.
   760 New facts are established either by assumption or proof of local statements.
   760 Any fact will usually be involved in further proofs, either as explicit
   761 Any fact will usually be involved in further proofs, either as explicit
   761 arguments of proof methods, or when forward chaining towards the next goal via
   762 arguments of proof methods, or when forward chaining towards the next goal via
   766 but only \emph{before} issuing a follow-up claim.
   767 but only \emph{before} issuing a follow-up claim.
   767 
   768 
   768 \begin{rail}
   769 \begin{rail}
   769   'note' (thmdef? thmrefs + 'and')
   770   'note' (thmdef? thmrefs + 'and')
   770   ;
   771   ;
   771   ('from' | 'with' | 'using') (thmrefs + 'and')
   772   ('from' | 'with' | 'using' | 'unfolding') (thmrefs + 'and')
   772   ;
   773   ;
   773 \end{rail}
   774 \end{rail}
   774 
   775 
   775 \begin{descr}
   776 \begin{descr}
   776 
   777 
   793 \item [$\WITH{\vec b}$] abbreviates ``$\FROM{\vec b~\AND~this}$''; thus the
   794 \item [$\WITH{\vec b}$] abbreviates ``$\FROM{\vec b~\AND~this}$''; thus the
   794   forward chaining is from earlier facts together with the current ones.
   795   forward chaining is from earlier facts together with the current ones.
   795   
   796   
   796 \item [$\USING{\vec b}$] augments the facts being currently indicated for use
   797 \item [$\USING{\vec b}$] augments the facts being currently indicated for use
   797   by a subsequent refinement step (such as $\APPLYNAME$ or $\PROOFNAME$).
   798   by a subsequent refinement step (such as $\APPLYNAME$ or $\PROOFNAME$).
       
   799   
       
   800 \item [$\UNFOLDING{\vec b}$] is structurally similar to $\USINGNAME$,
       
   801   but unfolds meta-level equations {\vec b} throughout the goal state
       
   802   and facts.
   798 
   803 
   799 \end{descr}
   804 \end{descr}
   800 
   805 
   801 Forward chaining with an empty list of theorems is the same as not chaining at
   806 Forward chaining with an empty list of theorems is the same as not chaining at
   802 all.  Thus ``$\FROM{nothing}$'' has no effect apart from entering
   807 all.  Thus ``$\FROM{nothing}$'' has no effect apart from entering