Logiweb(TM)

Logiweb aspects of metasubstc2 ( " , " , " , " ) in pyk

Up Help

The "pyk" aspect

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

The "value" aspect

define value of metasubstc2 ( x , s , b , c ) as norm { x is val : { s is val : { b is val : { c is val : LET x metadef ( c ) BE { asterisk IN LET asterisk BE { d IN if d then x head :: metasubstc2* ( x tail , s , b , c ) else LET lookup ( x , s , true ) BE { asterisk IN LET asterisk BE { v IN if v then x else LET v metadef ( c ) BE { asterisk IN LET asterisk BE { d IN if { .not. d } .and. { d != "var" } then error ( x , LocateProofLine ( x , c ) diag ( "Substitution of" ) disp ( x ) diag ( "with" ) disp ( v ) diag ( "produces non-meta-term" ) end diagnose ) else if metaavoid2* ( b , v , c ) then v else error ( x , LocateProofLine ( x , c ) diag ( "At-seqop used for non-free substitution. Attempt to instantiate" ) disp ( x ) diag ( "with" ) disp ( v ) end diagnose ) } } } } } } } } } } 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