Logiweb(TM)

Logiweb aspects of seqeval* ( " , " ) in pyk

Up Help

The "pyk" aspect

Define pyk of seqeval* ( asterisk , asterisk ) as "seqeval* ( "! , "! )" end define

The "value" aspect

define value of seqeval* ( a , c ) as norm { a is val : { c is val : if a = true then true else LET a BE { asterisk IN LET { if asterisk atom then asterisk else { asterisk head } } :: { { if asterisk atom then asterisk else { asterisk tail } } :: true } BE { asterisk prime IN LET asterisk prime head BE { asterisk IN LET asterisk prime tail BE { asterisk prime IN LET asterisk BE { x IN LET asterisk prime head BE { asterisk IN LET asterisk prime tail BE { asterisk prime IN LET asterisk BE { y IN if .not. { x intp } then seqeval* ( x , c ) :: seqeval* ( y , c ) else LET y [[ 0 ]] [[ proof ]] BE { asterisk IN LET asterisk BE { d IN if d = true then true else { print ( d second ) .then. LET { { eval ( d third , true , c ) apply { d maptag } } apply { c maptag } } untag [[ hook-arg ]] catch BE { asterisk IN LET { if asterisk atom then asterisk else { asterisk head } } :: { { if asterisk atom then asterisk else { asterisk tail } } :: true } BE { asterisk prime IN LET asterisk prime head BE { asterisk IN LET asterisk prime tail BE { asterisk prime IN LET asterisk BE { e IN LET asterisk prime head BE { asterisk IN LET asterisk prime tail BE { asterisk prime IN LET asterisk BE { p IN if e .and. p then error ( d second , diag ( "Malformed proof of" ) form ( d second ) end diagnose ) else if e then p raise else LET seqeval ( p , c ) catch BE { asterisk IN LET { if asterisk atom then asterisk else { asterisk head } } :: { { if asterisk atom then asterisk else { asterisk tail } } :: true } BE { asterisk prime IN LET asterisk prime head BE { asterisk IN LET asterisk prime tail BE { asterisk prime IN LET asterisk BE { e IN LET asterisk prime head BE { asterisk IN LET asterisk prime tail BE { asterisk prime IN LET asterisk BE { S IN if e .and. S then error ( d second , diag ( "Malformed sequent proof of" ) form ( d second ) end diagnose ) else if e then S raise else LET S BE { asterisk IN LET { if asterisk atom then asterisk else { asterisk head } } :: { { if asterisk atom then asterisk else { asterisk tail } } :: true } BE { asterisk prime IN LET asterisk prime head BE { asterisk IN LET asterisk prime tail BE { asterisk prime IN LET asterisk BE { P IN LET asterisk prime head BE { asterisk IN LET asterisk prime tail BE { asterisk prime IN LET { if asterisk atom then asterisk else { asterisk head } } :: { { if asterisk atom then asterisk else { asterisk tail } } :: true } BE { asterisk prime prime IN LET asterisk prime prime head BE { asterisk IN LET asterisk prime prime tail BE { asterisk prime prime IN LET asterisk BE { C IN LET asterisk prime prime head BE { asterisk IN LET asterisk prime prime tail BE { asterisk prime prime IN LET { if asterisk atom then asterisk else { asterisk head } } :: { { if asterisk atom then asterisk else { asterisk tail } } :: true } BE { asterisk prime prime prime IN LET asterisk prime prime prime head BE { asterisk IN LET asterisk prime prime prime tail BE { asterisk prime prime prime IN LET asterisk BE { R IN LET asterisk prime prime prime head BE { asterisk IN LET asterisk prime prime prime tail BE { asterisk prime prime prime IN if C != <<>> then error ( d second , diag ( "In proof of" ) form ( d second ) glue ( ":\newline " ) diag ( "Unchecked sidecondition:" ) disp ( C head ) end diagnose ) else LET y [[ 0 ]] [[ statement ]] BE { asterisk IN LET asterisk BE { l IN if l = true then error ( d second , diag ( "Proof of non-existent lemma:" ) disp ( d second ) end diagnose ) else if .not. { l third t= R } then error ( d , diag ( "The proof of" ) disp ( d second ) diag ( "does not prove what the lemma says." ) diag ( "After macro expansion, the lemma says:" ) disp ( l third ) diag ( "After macro, tactic, and sequent expansion, the proof concludes:" ) disp ( R ) end diagnose ) else { premisecheck* ( P , c ) .and. { x :: S } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } end define

The pyk compiler, version 0.1.9 by Klaus Grue,
GRD-2007-07-12.UTC:20:11:58.175987 = MJD-54293.TAI:20:12:31.175987 = LGT-4690987951175987e-6