Logiweb(TM)

Logiweb extract of check

Up Help

Table of contents

Date of publication
Bibliography
Definitions
Charges

Date of publication

GRD-2009-11-28.UTC:11:16:43.699221 (Gregorian Date / Universal Coordinated Time)
MJD-55163.TAI:11:17:17.699221 (Modified Julian Day / International Atomic Time)
LGT-4766123837699221e-6 (Logiweb Time)

Bibliography

[0] check (014E93CEDBCA44EB611BC0974861950432277A602795E9B4F2BAD8BB0806)
[1] base (01AB1F51C8C17606A5C0331B5689B4858C796547B9A0A4AEF0BCB2BB0806)

Definitions

check

Index 0 of page check

lgcdef lgcname of check as "check" enddef

define claim of check as test1 &c proofcheck end define

define macro of check as macro1 end define

lgcdef lgccharge of check as "0" enddef

alpha

Index 1 of page check

lgcdef lgcname of alpha as "alpha" enddef

Define tex show of alpha as " \alpha " end define

lgcdef lgccharge of alpha as "0" enddef

beta

Index 2 of page check

lgcdef lgcname of beta as "beta" enddef

Define tex show of beta as " \beta " end define

lgcdef lgccharge of beta as "0" enddef

gamma

Index 3 of page check

lgcdef lgcname of gamma as "gamma" enddef

Define tex show of gamma as " \gamma " end define

lgcdef lgccharge of gamma as "0" enddef

delta

Index 4 of page check

lgcdef lgcname of delta as "delta" enddef

Define tex show of delta as " \delta " end define

lgcdef lgccharge of delta as "0" enddef

epsilon

Index 5 of page check

lgcdef lgcname of epsilon as "epsilon" enddef

Define tex show of epsilon as " \epsilon " end define

lgcdef lgccharge of epsilon as "0" enddef

varepsilon

Index 6 of page check

lgcdef lgcname of varepsilon as "varepsilon" enddef

Define tex show of varepsilon as " \varepsilon " end define

lgcdef lgccharge of varepsilon as "0" enddef

zeta

Index 7 of page check

lgcdef lgcname of zeta as "zeta" enddef

Define tex show of zeta as " \zeta " end define

lgcdef lgccharge of zeta as "0" enddef

eta

Index 8 of page check

lgcdef lgcname of eta as "eta" enddef

Define tex show of eta as " \eta " end define

lgcdef lgccharge of eta as "0" enddef

theta

Index 9 of page check

lgcdef lgcname of theta as "theta" enddef

Define tex show of theta as " \theta " end define

lgcdef lgccharge of theta as "0" enddef

vartheta

Index 10 of page check

lgcdef lgcname of vartheta as "vartheta" enddef

Define tex show of vartheta as " \vartheta " end define

lgcdef lgccharge of vartheta as "0" enddef

iota

Index 11 of page check

lgcdef lgcname of iota as "iota" enddef

Define tex show of iota as " \iota " end define

lgcdef lgccharge of iota as "0" enddef

kappa

Index 12 of page check

lgcdef lgcname of kappa as "kappa" enddef

Define tex show of kappa as " \kappa " end define

lgcdef lgccharge of kappa as "0" enddef

lambda

Index 13 of page check

lgcdef lgcname of lambda as "lambda" enddef

Define tex show of lambda as " \lambda " end define

lgcdef lgccharge of lambda as "0" enddef

mu

Index 14 of page check

lgcdef lgcname of mu as "mu" enddef

Define tex show of mu as " \mu " end define

lgcdef lgccharge of mu as "0" enddef

nu

Index 15 of page check

lgcdef lgcname of nu as "nu" enddef

Define tex show of nu as " \nu " end define

lgcdef lgccharge of nu as "0" enddef

xi

Index 16 of page check

lgcdef lgcname of xi as "xi" enddef

Define tex show of xi as " \xi " end define

lgcdef lgccharge of xi as "0" enddef

pi

Index 17 of page check

lgcdef lgcname of pi as "pi" enddef

Define tex show of pi as " \pi " end define

lgcdef lgccharge of pi as "0" enddef

varpi

Index 18 of page check

lgcdef lgcname of varpi as "varpi" enddef

Define tex show of varpi as " \varpi " end define

lgcdef lgccharge of varpi as "0" enddef

rho

Index 19 of page check

lgcdef lgcname of rho as "rho" enddef

Define tex show of rho as " \rho " end define

lgcdef lgccharge of rho as "0" enddef

varrho

Index 20 of page check

lgcdef lgcname of varrho as "varrho" enddef

Define tex show of varrho as " \varrho " end define

lgcdef lgccharge of varrho as "0" enddef

sigma

Index 21 of page check

lgcdef lgcname of sigma as "sigma" enddef

Define tex show of sigma as " \sigma " end define

lgcdef lgccharge of sigma as "0" enddef

varsigma

Index 22 of page check

lgcdef lgcname of varsigma as "varsigma" enddef

Define tex show of varsigma as " \varsigma " end define

lgcdef lgccharge of varsigma as "0" enddef

tau

Index 23 of page check

lgcdef lgcname of tau as "tau" enddef

Define tex show of tau as " \tau " end define

lgcdef lgccharge of tau as "0" enddef

upsilon

Index 24 of page check

lgcdef lgcname of upsilon as "upsilon" enddef

Define tex show of upsilon as " \upsilon " end define

lgcdef lgccharge of upsilon as "0" enddef

phi

Index 25 of page check

lgcdef lgcname of phi as "phi" enddef

Define tex show of phi as " \phi " end define

lgcdef lgccharge of phi as "0" enddef

chi

Index 26 of page check

lgcdef lgcname of chi as "chi" enddef

Define tex show of chi as " \chi " end define

lgcdef lgccharge of chi as "0" enddef

psi

Index 27 of page check

lgcdef lgcname of psi as "psi" enddef

Define tex show of psi as " \psi " end define

lgcdef lgccharge of psi as "0" enddef

omega

Index 28 of page check

lgcdef lgcname of omega as "omega" enddef

Define tex show of omega as " \omega " end define

lgcdef lgccharge of omega as "0" enddef

Gamma

Index 29 of page check

lgcdef lgcname of Gamma as "Gamma" enddef

Define tex show of Gamma as " \Gamma " end define

lgcdef lgccharge of Gamma as "0" enddef

Delta

Index 30 of page check

lgcdef lgcname of Delta as "Delta" enddef

Define tex show of Delta as " \Delta " end define

lgcdef lgccharge of Delta as "0" enddef

Theta

Index 31 of page check

lgcdef lgcname of Theta as "Theta" enddef

Define tex show of Theta as " \Theta " end define

lgcdef lgccharge of Theta as "0" enddef

Lambda

Index 32 of page check

lgcdef lgcname of Lambda as "Lambda" enddef

Define tex show of Lambda as " \Lambda " end define

lgcdef lgccharge of Lambda as "0" enddef

Xi

Index 33 of page check

lgcdef lgcname of Xi as "Xi" enddef

Define tex show of Xi as " \Xi " end define

lgcdef lgccharge of Xi as "0" enddef

Pi

Index 34 of page check

lgcdef lgcname of Pi as "Pi" enddef

Define tex show of Pi as " \Pi " end define

lgcdef lgccharge of Pi as "0" enddef

Sigma

Index 35 of page check

lgcdef lgcname of Sigma as "Sigma" enddef

Define tex show of Sigma as " \Sigma " end define

lgcdef lgccharge of Sigma as "0" enddef

Upsilon

Index 36 of page check

lgcdef lgcname of Upsilon as "Upsilon" enddef

Define tex show of Upsilon as " \Upsilon " end define

lgcdef lgccharge of Upsilon as "0" enddef

Phi

Index 37 of page check

lgcdef lgcname of Phi as "Phi" enddef

Define tex show of Phi as " \Phi " end define

lgcdef lgccharge of Phi as "0" enddef

Psi

Index 38 of page check

lgcdef lgcname of Psi as "Psi" enddef

Define tex show of Psi as " \Psi " end define

lgcdef lgccharge of Psi as "0" enddef

Omega

Index 39 of page check

lgcdef lgcname of Omega as "Omega" enddef

Define tex show of Omega as " \Omega " end define

lgcdef lgccharge of Omega as "0" enddef

cla

Index 40 of page check

lgcdef lgcname of cla as "cla" enddef

Define tex show of cla as "{\cal A}" end define

lgcdef lgccharge of cla as "0" enddef

clb

Index 41 of page check

lgcdef lgcname of clb as "clb" enddef

Define tex show of clb as "{\cal B}" end define

lgcdef lgccharge of clb as "0" enddef

clc

Index 42 of page check

lgcdef lgcname of clc as "clc" enddef

Define tex show of clc as "{\cal C}" end define

lgcdef lgccharge of clc as "0" enddef

cld

Index 43 of page check

lgcdef lgcname of cld as "cld" enddef

Define tex show of cld as "{\cal D}" end define

lgcdef lgccharge of cld as "0" enddef

cle

Index 44 of page check

lgcdef lgcname of cle as "cle" enddef

Define tex show of cle as "{\cal E}" end define

lgcdef lgccharge of cle as "0" enddef

clf

Index 45 of page check

lgcdef lgcname of clf as "clf" enddef

Define tex show of clf as "{\cal F}" end define

lgcdef lgccharge of clf as "0" enddef

clg

Index 46 of page check

lgcdef lgcname of clg as "clg" enddef

Define tex show of clg as "{\cal G}" end define

lgcdef lgccharge of clg as "0" enddef

clh

Index 47 of page check

lgcdef lgcname of clh as "clh" enddef

Define tex show of clh as "{\cal H}" end define

lgcdef lgccharge of clh as "0" enddef

cli

Index 48 of page check

lgcdef lgcname of cli as "cli" enddef

Define tex show of cli as "{\cal I}" end define

lgcdef lgccharge of cli as "0" enddef

clj

Index 49 of page check

lgcdef lgcname of clj as "clj" enddef

Define tex show of clj as "{\cal J}" end define

lgcdef lgccharge of clj as "0" enddef

clk

Index 50 of page check

lgcdef lgcname of clk as "clk" enddef

Define tex show of clk as "{\cal K}" end define

lgcdef lgccharge of clk as "0" enddef

cll

Index 51 of page check

lgcdef lgcname of cll as "cll" enddef

Define tex show of cll as "{\cal L}" end define

lgcdef lgccharge of cll as "0" enddef

clm

Index 52 of page check

lgcdef lgcname of clm as "clm" enddef

Define tex show of clm as "{\cal M}" end define

lgcdef lgccharge of clm as "0" enddef

cln

Index 53 of page check

lgcdef lgcname of cln as "cln" enddef

Define tex show of cln as "{\cal N}" end define

lgcdef lgccharge of cln as "0" enddef

clo

Index 54 of page check

lgcdef lgcname of clo as "clo" enddef

Define tex show of clo as "{\cal O}" end define

lgcdef lgccharge of clo as "0" enddef

clp

Index 55 of page check

lgcdef lgcname of clp as "clp" enddef

Define tex show of clp as "{\cal P}" end define

lgcdef lgccharge of clp as "0" enddef

clq

Index 56 of page check

lgcdef lgcname of clq as "clq" enddef

Define tex show of clq as "{\cal Q}" end define

lgcdef lgccharge of clq as "0" enddef

clr

Index 57 of page check

lgcdef lgcname of clr as "clr" enddef

Define tex show of clr as "{\cal R}" end define

lgcdef lgccharge of clr as "0" enddef

cls

Index 58 of page check

lgcdef lgcname of cls as "cls" enddef

Define tex show of cls as "{\cal S}" end define

lgcdef lgccharge of cls as "0" enddef

clt

Index 59 of page check

lgcdef lgcname of clt as "clt" enddef

Define tex show of clt as "{\cal T}" end define

lgcdef lgccharge of clt as "0" enddef

clu

Index 60 of page check

lgcdef lgcname of clu as "clu" enddef

Define tex show of clu as "{\cal U}" end define

lgcdef lgccharge of clu as "0" enddef

clv

Index 61 of page check

lgcdef lgcname of clv as "clv" enddef

Define tex show of clv as "{\cal V}" end define

lgcdef lgccharge of clv as "0" enddef

clw

Index 62 of page check

lgcdef lgcname of clw as "clw" enddef

Define tex show of clw as "{\cal W}" end define

lgcdef lgccharge of clw as "0" enddef

clx

Index 63 of page check

lgcdef lgcname of clx as "clx" enddef

Define tex show of clx as "{\cal X}" end define

lgcdef lgccharge of clx as "0" enddef

cly

Index 64 of page check

lgcdef lgcname of cly as "cly" enddef

Define tex show of cly as "{\cal Y}" end define

lgcdef lgccharge of cly as "0" enddef

clz

Index 65 of page check

lgcdef lgcname of clz as "clz" enddef

Define tex show of clz as "{\cal Z}" end define

lgcdef lgccharge of clz as "0" enddef

statement

Index 66 of page check

lgcdef lgcname of statement as "statement" enddef

Define tex show of statement as " stmt" end define

define value of statement as norm "statement/kg" end define

lgcdef lgccharge of statement as "0" enddef

define message of statement as "statement/kg" end define

proof

Index 67 of page check

lgcdef lgcname of proof as "proof" enddef

Define tex show of proof as " proof" end define

define value of proof as norm "proof/kg" end define

lgcdef lgccharge of proof as "0" enddef

define message of proof as "proof/kg" end define

meta

Index 68 of page check

lgcdef lgcname of meta as "meta" enddef

define value of meta as norm "meta/kg" end define

lgcdef lgccharge of meta as "0" enddef

define message of meta as "meta/kg" end define

math

Index 69 of page check

lgcdef lgcname of math as "math" enddef

define value of math as norm "math/kg" end define

lgcdef lgccharge of math as "0" enddef

define message of math as "math/kg" end define

tactic

Index 70 of page check

lgcdef lgcname of tactic as "tactic" enddef

define value of tactic as norm "tactic/kg" end define

lgcdef lgccharge of tactic as "0" enddef

define message of tactic as "tactic/kg" end define

unitac

Index 71 of page check

lgcdef lgcname of unitac as "unitac" enddef

define value of unitac as norm "unitac/kg" end define

lgcdef lgccharge of unitac as "0" enddef

define message of unitac as "unitac/kg" end define

locate

Index 72 of page check

lgcdef lgcname of locate as "locate" enddef

define value of locate as norm "locate/kg" end define

lgcdef lgccharge of locate as "0" enddef

define message of locate as "locate/kg" end define

statement define " as " end define

Index 73 of page check

lgcdef lgcname of statement define lgcvar as lgcvar end define as "statement define ""! as ""! end define" enddef

Define tex show of statement define x as y end define as " [ "[ texshow x end texshow ][" \stackrel{stmt}{=} "[ texshow y end texshow ]" ]"] end define

define macro of statement define x as y end define as \ x . expand ( quote macro define statement define x as y end define as define statement of x as y end define end define end quote , x ) end define

lgcdef lgccharge of statement define lgcvar as lgcvar end define as "0" enddef

proof define " as " end define

Index 74 of page check

lgcdef lgcname of proof define lgcvar as lgcvar end define as "proof define ""! as ""! end define" enddef

Define tex show of proof define x as y end define as " [ "[ texshow x end texshow ][" \stackrel{proof}{=} "[ texshow y end texshow ]" ]"] end define

define macro of proof define x as y end define as \ x . expand ( quote macro define proof define x as y end define as define proof of x as y end define end define end quote , x ) end define

lgcdef lgccharge of proof define lgcvar as lgcvar end define as "0" enddef

define locate of proof define x as y end define as "proof" :: 1 end define

meta define " as " end define

Index 75 of page check

lgcdef lgcname of meta define lgcvar as lgcvar end define as "meta define ""! as ""! end define" enddef

Define tex show of meta define x as y end define as " [ "[ texshow x end texshow ][" \stackrel{meta}{=} "[ texshow y end texshow ]" ]"] end define

define macro of meta define x as y end define as \ x . expand ( quote macro define meta define x as y end define as define meta of x as y end define end define end quote , x ) end define

lgcdef lgccharge of meta define lgcvar as lgcvar end define as "0" enddef

math define " as " end define

Index 76 of page check

lgcdef lgcname of math define lgcvar as lgcvar end define as "math define ""! as ""! end define" enddef

Define tex show of math define x as y end define as " [ "[ texshow x end texshow ][" \stackrel{math}{=} "[ texshow y end texshow ]" ]"] end define

define macro of math define x as y end define as \ x . expand ( quote macro define math define x as y end define as define math of x as y end define end define end quote , x ) end define

lgcdef lgccharge of math define lgcvar as lgcvar end define as "0" enddef

tactic define " as " end define

Index 77 of page check

lgcdef lgcname of tactic define lgcvar as lgcvar end define as "tactic define ""! as ""! end define" enddef

Define tex show of tactic define x as y end define as " [ "[ texshow x end texshow ][" \stackrel{tactic}{=} "[ texshow y end texshow ]" ]"] end define

define macro of tactic define x as y end define as \ x . expand ( quote macro define tactic define x as y end define as define tactic of x as y end define end define end quote , x ) end define

lgcdef lgccharge of tactic define lgcvar as lgcvar end define as "0" enddef

unitac define " as " end define

Index 78 of page check

lgcdef lgcname of unitac define lgcvar as lgcvar end define as "unitac define ""! as ""! end define" enddef

Define tex show of unitac define x as y end define as " [ "[ texshow x end texshow ][" \stackrel{unitac}{=} "[ texshow y end texshow ]" ]"] end define

define macro of unitac define x as y end define as \ x . expand ( quote macro define unitac define x as y end define as define unitac of x as y end define end define end quote , x ) end define

lgcdef lgccharge of unitac define lgcvar as lgcvar end define as "0" enddef

locate define " as " end define

Index 79 of page check

lgcdef lgcname of locate define lgcvar as lgcvar end define as "locate define ""! as ""! end define" enddef

Define tex show of locate define x as y end define as " [ "[ texshow x end texshow ][" \stackrel{locate}{=} "[ y ]" ]"] end define

define macro of locate define x as y end define as \ x . expand ( quote macro define locate define x as y end define as define locate of root protect x end protect as y end define end define end quote , x ) end define

lgcdef lgccharge of locate define lgcvar as lgcvar end define as "0" enddef

#a

Index 80 of page check

lgcdef lgcname of #a as "#a" enddef

Define tex show of #a as " \mathsf{a}" end define

lgcdef lgccharge of #a as "0" enddef

define meta of #a as "var" end define

#b

Index 81 of page check

lgcdef lgcname of #b as "#b" enddef

Define tex show of #b as " \mathsf{b}" end define

lgcdef lgccharge of #b as "0" enddef

define meta of #b as "var" end define

#c

Index 82 of page check

lgcdef lgcname of #c as "#c" enddef

Define tex show of #c as " \mathsf{c}" end define

lgcdef lgccharge of #c as "0" enddef

define meta of #c as "var" end define

#d

Index 83 of page check

lgcdef lgcname of #d as "#d" enddef

Define tex show of #d as " \mathsf{d}" end define

lgcdef lgccharge of #d as "0" enddef

define meta of #d as "var" end define

#e

Index 84 of page check

lgcdef lgcname of #e as "#e" enddef

Define tex show of #e as " \mathsf{e}" end define

lgcdef lgccharge of #e as "0" enddef

define meta of #e as "var" end define

#f

Index 85 of page check

lgcdef lgcname of #f as "#f" enddef

Define tex show of #f as " \mathsf{f}" end define

lgcdef lgccharge of #f as "0" enddef

define meta of #f as "var" end define

#g

Index 86 of page check

lgcdef lgcname of #g as "#g" enddef

Define tex show of #g as " \mathsf{g}" end define

lgcdef lgccharge of #g as "0" enddef

define meta of #g as "var" end define

#h

Index 87 of page check

lgcdef lgcname of #h as "#h" enddef

Define tex show of #h as " \mathsf{h}" end define

lgcdef lgccharge of #h as "0" enddef

define meta of #h as "var" end define

#i

Index 88 of page check

lgcdef lgcname of #i as "#i" enddef

Define tex show of #i as " \mathsf{i}" end define

lgcdef lgccharge of #i as "0" enddef

define meta of #i as "var" end define

#j

Index 89 of page check

lgcdef lgcname of #j as "#j" enddef

Define tex show of #j as " \mathsf{j}" end define

lgcdef lgccharge of #j as "0" enddef

define meta of #j as "var" end define

#k

Index 90 of page check

lgcdef lgcname of #k as "#k" enddef

Define tex show of #k as " \mathsf{k}" end define

lgcdef lgccharge of #k as "0" enddef

define meta of #k as "var" end define

#l

Index 91 of page check

lgcdef lgcname of #l as "#l" enddef

Define tex show of #l as " \mathsf{l}" end define

lgcdef lgccharge of #l as "0" enddef

define meta of #l as "var" end define

#m

Index 92 of page check

lgcdef lgcname of #m as "#m" enddef

Define tex show of #m as " \mathsf{m}" end define

lgcdef lgccharge of #m as "0" enddef

define meta of #m as "var" end define

#n

Index 93 of page check

lgcdef lgcname of #n as "#n" enddef

Define tex show of #n as " \mathsf{n}" end define

lgcdef lgccharge of #n as "0" enddef

define meta of #n as "var" end define

#o

Index 94 of page check

lgcdef lgcname of #o as "#o" enddef

Define tex show of #o as " \mathsf{o}" end define

lgcdef lgccharge of #o as "0" enddef

define meta of #o as "var" end define

#p

Index 95 of page check

lgcdef lgcname of #p as "#p" enddef

Define tex show of #p as " \mathsf{p}" end define

lgcdef lgccharge of #p as "0" enddef

define meta of #p as "var" end define

#q

Index 96 of page check

lgcdef lgcname of #q as "#q" enddef

Define tex show of #q as " \mathsf{q}" end define

lgcdef lgccharge of #q as "0" enddef

define meta of #q as "var" end define

#r

Index 97 of page check

lgcdef lgcname of #r as "#r" enddef

Define tex show of #r as " \mathsf{r}" end define

lgcdef lgccharge of #r as "0" enddef

define meta of #r as "var" end define

#s

Index 98 of page check

lgcdef lgcname of #s as "#s" enddef

Define tex show of #s as " \mathsf{s}" end define

lgcdef lgccharge of #s as "0" enddef

define meta of #s as "var" end define

#t

Index 99 of page check

lgcdef lgcname of #t as "#t" enddef

Define tex show of #t as " \mathsf{t}" end define

lgcdef lgccharge of #t as "0" enddef

define meta of #t as "var" end define

#u

Index 100 of page check

lgcdef lgcname of #u as "#u" enddef

Define tex show of #u as " \mathsf{u}" end define

lgcdef lgccharge of #u as "0" enddef

define meta of #u as "var" end define

#v

Index 101 of page check

lgcdef lgcname of #v as "#v" enddef

Define tex show of #v as " \mathsf{v}" end define

lgcdef lgccharge of #v as "0" enddef

define meta of #v as "var" end define

#w

Index 102 of page check

lgcdef lgcname of #w as "#w" enddef

Define tex show of #w as " \mathsf{w}" end define

lgcdef lgccharge of #w as "0" enddef

define meta of #w as "var" end define

#x

Index 103 of page check

lgcdef lgcname of #x as "#x" enddef

Define tex show of #x as " \mathsf{x}" end define

lgcdef lgccharge of #x as "0" enddef

define meta of #x as "var" end define

#y

Index 104 of page check

lgcdef lgcname of #y as "#y" enddef

Define tex show of #y as " \mathsf{y}" end define

lgcdef lgccharge of #y as "0" enddef

define meta of #y as "var" end define

#z

Index 105 of page check

lgcdef lgcname of #z as "#z" enddef

Define tex show of #z as " \mathsf{z}" end define

lgcdef lgccharge of #z as "0" enddef

define meta of #z as "var" end define

tacfresh ( " )

Index 106 of page check

lgcdef lgcname of tacfresh ( lgcvar ) as "tacfresh ( ""! )" enddef

lgcdef lgccharge of tacfresh ( lgcvar ) as "0" enddef

define meta of tacfresh ( x ) as "var" end define

unifresh ( " , " )

Index 107 of page check

lgcdef lgcname of unifresh ( lgcvar , lgcvar ) as "unifresh ( ""! , ""! )" enddef

lgcdef lgccharge of unifresh ( lgcvar , lgcvar ) as "0" enddef

define meta of unifresh ( x , y ) as "var" end define

L00

Index 108 of page check

lgcdef lgcname of L00 as "L00" enddef

lgcdef lgccharge of L00 as "0" enddef

L01

Index 109 of page check

lgcdef lgcname of L01 as "L01" enddef

lgcdef lgccharge of L01 as "0" enddef

L02

Index 110 of page check

lgcdef lgcname of L02 as "L02" enddef

lgcdef lgccharge of L02 as "0" enddef

L03

Index 111 of page check

lgcdef lgcname of L03 as "L03" enddef

lgcdef lgccharge of L03 as "0" enddef

L04

Index 112 of page check

lgcdef lgcname of L04 as "L04" enddef

lgcdef lgccharge of L04 as "0" enddef

L05

Index 113 of page check

lgcdef lgcname of L05 as "L05" enddef

lgcdef lgccharge of L05 as "0" enddef

L06

Index 114 of page check

lgcdef lgcname of L06 as "L06" enddef

lgcdef lgccharge of L06 as "0" enddef

L07

Index 115 of page check

lgcdef lgcname of L07 as "L07" enddef

lgcdef lgccharge of L07 as "0" enddef

L08

Index 116 of page check

lgcdef lgcname of L08 as "L08" enddef

lgcdef lgccharge of L08 as "0" enddef

L09

Index 117 of page check

lgcdef lgcname of L09 as "L09" enddef

lgcdef lgccharge of L09 as "0" enddef

L10

Index 118 of page check

lgcdef lgcname of L10 as "L10" enddef

lgcdef lgccharge of L10 as "0" enddef

L11

Index 119 of page check

lgcdef lgcname of L11 as "L11" enddef

lgcdef lgccharge of L11 as "0" enddef

L12

Index 120 of page check

lgcdef lgcname of L12 as "L12" enddef

lgcdef lgccharge of L12 as "0" enddef

L13

Index 121 of page check

lgcdef lgcname of L13 as "L13" enddef

lgcdef lgccharge of L13 as "0" enddef

L14

Index 122 of page check

lgcdef lgcname of L14 as "L14" enddef

lgcdef lgccharge of L14 as "0" enddef

L15

Index 123 of page check

lgcdef lgcname of L15 as "L15" enddef

lgcdef lgccharge of L15 as "0" enddef

L16

Index 124 of page check

lgcdef lgcname of L16 as "L16" enddef

lgcdef lgccharge of L16 as "0" enddef

L17

Index 125 of page check

lgcdef lgcname of L17 as "L17" enddef

lgcdef lgccharge of L17 as "0" enddef

L18

Index 126 of page check

lgcdef lgcname of L18 as "L18" enddef

lgcdef lgccharge of L18 as "0" enddef

L19

Index 127 of page check

lgcdef lgcname of L19 as "L19" enddef

lgcdef lgccharge of L19 as "0" enddef

L20

Index 128 of page check

lgcdef lgcname of L20 as "L20" enddef

lgcdef lgccharge of L20 as "0" enddef

L21

Index 129 of page check

lgcdef lgcname of L21 as "L21" enddef

lgcdef lgccharge of L21 as "0" enddef

L22

Index 130 of page check

lgcdef lgcname of L22 as "L22" enddef

lgcdef lgccharge of L22 as "0" enddef

L23

Index 131 of page check

lgcdef lgcname of L23 as "L23" enddef

lgcdef lgccharge of L23 as "0" enddef

L24

Index 132 of page check

lgcdef lgcname of L24 as "L24" enddef

lgcdef lgccharge of L24 as "0" enddef

L25

Index 133 of page check

lgcdef lgcname of L25 as "L25" enddef

lgcdef lgccharge of L25 as "0" enddef

L26

Index 134 of page check

lgcdef lgcname of L26 as "L26" enddef

lgcdef lgccharge of L26 as "0" enddef

L27

Index 135 of page check

lgcdef lgcname of L27 as "L27" enddef

lgcdef lgccharge of L27 as "0" enddef

L28

Index 136 of page check

lgcdef lgcname of L28 as "L28" enddef

lgcdef lgccharge of L28 as "0" enddef

L29

Index 137 of page check

lgcdef lgcname of L29 as "L29" enddef

lgcdef lgccharge of L29 as "0" enddef

L30

Index 138 of page check

lgcdef lgcname of L30 as "L30" enddef

lgcdef lgccharge of L30 as "0" enddef

L31

Index 139 of page check

lgcdef lgcname of L31 as "L31" enddef

lgcdef lgccharge of L31 as "0" enddef

L32

Index 140 of page check

lgcdef lgcname of L32 as "L32" enddef

lgcdef lgccharge of L32 as "0" enddef

L33

Index 141 of page check

lgcdef lgcname of L33 as "L33" enddef

lgcdef lgccharge of L33 as "0" enddef

L34

Index 142 of page check

lgcdef lgcname of L34 as "L34" enddef

lgcdef lgccharge of L34 as "0" enddef

L35

Index 143 of page check

lgcdef lgcname of L35 as "L35" enddef

lgcdef lgccharge of L35 as "0" enddef

L36

Index 144 of page check

lgcdef lgcname of L36 as "L36" enddef

lgcdef lgccharge of L36 as "0" enddef

L37

Index 145 of page check

lgcdef lgcname of L37 as "L37" enddef

lgcdef lgccharge of L37 as "0" enddef

L38

Index 146 of page check

lgcdef lgcname of L38 as "L38" enddef

lgcdef lgccharge of L38 as "0" enddef

L39

Index 147 of page check

lgcdef lgcname of L39 as "L39" enddef

lgcdef lgccharge of L39 as "0" enddef

L40

Index 148 of page check

lgcdef lgcname of L40 as "L40" enddef

lgcdef lgccharge of L40 as "0" enddef

L41

Index 149 of page check

lgcdef lgcname of L41 as "L41" enddef

lgcdef lgccharge of L41 as "0" enddef

L42

Index 150 of page check

lgcdef lgcname of L42 as "L42" enddef

lgcdef lgccharge of L42 as "0" enddef

L43

Index 151 of page check

lgcdef lgcname of L43 as "L43" enddef

lgcdef lgccharge of L43 as "0" enddef

L44

Index 152 of page check

lgcdef lgcname of L44 as "L44" enddef

lgcdef lgccharge of L44 as "0" enddef

L45

Index 153 of page check

lgcdef lgcname of L45 as "L45" enddef

lgcdef lgccharge of L45 as "0" enddef

L46

Index 154 of page check

lgcdef lgcname of L46 as "L46" enddef

lgcdef lgccharge of L46 as "0" enddef

L47

Index 155 of page check

lgcdef lgcname of L47 as "L47" enddef

lgcdef lgccharge of L47 as "0" enddef

L48

Index 156 of page check

lgcdef lgcname of L48 as "L48" enddef

lgcdef lgccharge of L48 as "0" enddef

L49

Index 157 of page check

lgcdef lgcname of L49 as "L49" enddef

lgcdef lgccharge of L49 as "0" enddef

L50

Index 158 of page check

lgcdef lgcname of L50 as "L50" enddef

lgcdef lgccharge of L50 as "0" enddef

L51

Index 159 of page check

lgcdef lgcname of L51 as "L51" enddef

lgcdef lgccharge of L51 as "0" enddef

L52

Index 160 of page check

lgcdef lgcname of L52 as "L52" enddef

lgcdef lgccharge of L52 as "0" enddef

L53

Index 161 of page check

lgcdef lgcname of L53 as "L53" enddef

lgcdef lgccharge of L53 as "0" enddef

L54

Index 162 of page check

lgcdef lgcname of L54 as "L54" enddef

lgcdef lgccharge of L54 as "0" enddef

L55

Index 163 of page check

lgcdef lgcname of L55 as "L55" enddef

lgcdef lgccharge of L55 as "0" enddef

L56

Index 164 of page check

lgcdef lgcname of L56 as "L56" enddef

lgcdef lgccharge of L56 as "0" enddef

L57

Index 165 of page check

lgcdef lgcname of L57 as "L57" enddef

lgcdef lgccharge of L57 as "0" enddef

L58

Index 166 of page check

lgcdef lgcname of L58 as "L58" enddef

lgcdef lgccharge of L58 as "0" enddef

L59

Index 167 of page check

lgcdef lgcname of L59 as "L59" enddef

lgcdef lgccharge of L59 as "0" enddef

L60

Index 168 of page check

lgcdef lgcname of L60 as "L60" enddef

lgcdef lgccharge of L60 as "0" enddef

L61

Index 169 of page check

lgcdef lgcname of L61 as "L61" enddef

lgcdef lgccharge of L61 as "0" enddef

L62

Index 170 of page check

lgcdef lgcname of L62 as "L62" enddef

lgcdef lgccharge of L62 as "0" enddef

L63

Index 171 of page check

lgcdef lgcname of L63 as "L63" enddef

lgcdef lgccharge of L63 as "0" enddef

L64

Index 172 of page check

lgcdef lgcname of L64 as "L64" enddef

lgcdef lgccharge of L64 as "0" enddef

L65

Index 173 of page check

lgcdef lgcname of L65 as "L65" enddef

lgcdef lgccharge of L65 as "0" enddef

L66

Index 174 of page check

lgcdef lgcname of L66 as "L66" enddef

lgcdef lgccharge of L66 as "0" enddef

L67

Index 175 of page check

lgcdef lgcname of L67 as "L67" enddef

lgcdef lgccharge of L67 as "0" enddef

L68

Index 176 of page check

lgcdef lgcname of L68 as "L68" enddef

lgcdef lgccharge of L68 as "0" enddef

L69

Index 177 of page check

lgcdef lgcname of L69 as "L69" enddef

lgcdef lgccharge of L69 as "0" enddef

L70

Index 178 of page check

lgcdef lgcname of L70 as "L70" enddef

lgcdef lgccharge of L70 as "0" enddef

L71

Index 179 of page check

lgcdef lgcname of L71 as "L71" enddef

lgcdef lgccharge of L71 as "0" enddef

L72

Index 180 of page check

lgcdef lgcname of L72 as "L72" enddef

lgcdef lgccharge of L72 as "0" enddef

L73

Index 181 of page check

lgcdef lgcname of L73 as "L73" enddef

lgcdef lgccharge of L73 as "0" enddef

L74

Index 182 of page check

lgcdef lgcname of L74 as "L74" enddef

lgcdef lgccharge of L74 as "0" enddef

L75

Index 183 of page check

lgcdef lgcname of L75 as "L75" enddef

lgcdef lgccharge of L75 as "0" enddef

L76

Index 184 of page check

lgcdef lgcname of L76 as "L76" enddef

lgcdef lgccharge of L76 as "0" enddef

L77

Index 185 of page check

lgcdef lgcname of L77 as "L77" enddef

lgcdef lgccharge of L77 as "0" enddef

L78

Index 186 of page check

lgcdef lgcname of L78 as "L78" enddef

lgcdef lgccharge of L78 as "0" enddef

L79

Index 187 of page check

lgcdef lgcname of L79 as "L79" enddef

lgcdef lgccharge of L79 as "0" enddef

L80

Index 188 of page check

lgcdef lgcname of L80 as "L80" enddef

lgcdef lgccharge of L80 as "0" enddef

L81

Index 189 of page check

lgcdef lgcname of L81 as "L81" enddef

lgcdef lgccharge of L81 as "0" enddef

L82

Index 190 of page check

lgcdef lgcname of L82 as "L82" enddef

lgcdef lgccharge of L82 as "0" enddef

L83

Index 191 of page check

lgcdef lgcname of L83 as "L83" enddef

lgcdef lgccharge of L83 as "0" enddef

L84

Index 192 of page check

lgcdef lgcname of L84 as "L84" enddef

lgcdef lgccharge of L84 as "0" enddef

L85

Index 193 of page check

lgcdef lgcname of L85 as "L85" enddef

lgcdef lgccharge of L85 as "0" enddef

L86

Index 194 of page check

lgcdef lgcname of L86 as "L86" enddef

lgcdef lgccharge of L86 as "0" enddef

L87

Index 195 of page check

lgcdef lgcname of L87 as "L87" enddef

lgcdef lgccharge of L87 as "0" enddef

L88

Index 196 of page check

lgcdef lgcname of L88 as "L88" enddef

lgcdef lgccharge of L88 as "0" enddef

L89

Index 197 of page check

lgcdef lgcname of L89 as "L89" enddef

lgcdef lgccharge of L89 as "0" enddef

L90

Index 198 of page check

lgcdef lgcname of L90 as "L90" enddef

lgcdef lgccharge of L90 as "0" enddef

L91

Index 199 of page check

lgcdef lgcname of L91 as "L91" enddef

lgcdef lgccharge of L91 as "0" enddef

L92

Index 200 of page check

lgcdef lgcname of L92 as "L92" enddef

lgcdef lgccharge of L92 as "0" enddef

L93

Index 201 of page check

lgcdef lgcname of L93 as "L93" enddef

lgcdef lgccharge of L93 as "0" enddef

L94

Index 202 of page check

lgcdef lgcname of L94 as "L94" enddef

lgcdef lgccharge of L94 as "0" enddef

L95

Index 203 of page check

lgcdef lgcname of L95 as "L95" enddef

lgcdef lgccharge of L95 as "0" enddef

L96

Index 204 of page check

lgcdef lgcname of L96 as "L96" enddef

lgcdef lgccharge of L96 as "0" enddef

L97

Index 205 of page check

lgcdef lgcname of L97 as "L97" enddef

lgcdef lgccharge of L97 as "0" enddef

L98

Index 206 of page check

lgcdef lgcname of L98 as "L98" enddef

lgcdef lgccharge of L98 as "0" enddef

L99

Index 207 of page check

lgcdef lgcname of L99 as "L99" enddef

lgcdef lgccharge of L99 as "0" enddef

False

Index 208 of page check

lgcdef lgcname of False as "False" enddef

Define tex show of False as " \mathrel{\makebox[0mm][l]{$\bot$}\,{\bot}}" end define

lgcdef lgccharge of False as "0" enddef

define meta of False as "false" end define

p.A1

Index 209 of page check

lgcdef lgcname of p.A1 as "p.A1" enddef

Define tex show of p.A1 as " A1" end define

lgcdef lgccharge of p.A1 as "0" enddef

define unitac of p.A1 as \ u . unitac-rule ( u ) end define

define statement of p.A1 as All #x : All #y : [#x p.imply [#y p.imply #x]] end define

p.A2

Index 210 of page check

lgcdef lgcname of p.A2 as "p.A2" enddef

Define tex show of p.A2 as " A2" end define

lgcdef lgccharge of p.A2 as "0" enddef

define unitac of p.A2 as \ u . unitac-rule ( u ) end define

define statement of p.A2 as All #x : All #y : All #z : [[#x p.imply [#y p.imply #z]] p.imply [[#x p.imply #y] p.imply [#x p.imply #z]]] end define

p.A3

Index 211 of page check

lgcdef lgcname of p.A3 as "p.A3" enddef

Define tex show of p.A3 as " A3" end define

lgcdef lgccharge of p.A3 as "0" enddef

define unitac of p.A3 as \ u . unitac-rule ( u ) end define

define statement of p.A3 as All #x : All #y : [[[p.not #y] p.imply p.not #x] p.imply [[[p.not #y] p.imply #x] p.imply #y]] end define

p.MP

Index 212 of page check

lgcdef lgcname of p.MP as "p.MP" enddef

Define tex show of p.MP as " MP" end define

lgcdef lgccharge of p.MP as "0" enddef

define unitac of p.MP as \ u . unitac-rule ( u ) end define

define statement of p.MP as All #x : All #y : [[#x p.imply #y] infer [#x infer #y]] end define

p.Prop

Index 213 of page check

lgcdef lgcname of p.Prop as "p.Prop" enddef

Define tex show of p.Prop as " Prop" end define

lgcdef lgccharge of p.Prop as "0" enddef

define statement of p.Prop as p.IProp oplus p.A3 end define

p.IProp

Index 214 of page check

lgcdef lgcname of p.IProp as "p.IProp" enddef

Define tex show of p.IProp as " IProp" end define

lgcdef lgccharge of p.IProp as "0" enddef

define statement of p.IProp as p.A1 oplus [p.A2 oplus p.MP] end define

distinctvar ( " , " )

Index 215 of page check

lgcdef lgcname of distinctvar ( lgcvar , lgcvar ) as "distinctvar ( ""! , ""! )" enddef

define value of distinctvar ( x , c ) as norm [x is val : [c is val : [x atom .or. [[x head objectvar ( c ) .and. .not. [x head member [x tail]]] .and. distinctvar ( x tail , c )]]]] end define

lgcdef lgccharge of distinctvar ( lgcvar , lgcvar ) as "0" enddef

metaavoid1 ( " , " , " )

Index 216 of page check

lgcdef lgcname of metaavoid1 ( lgcvar , lgcvar , lgcvar ) as "metaavoid1 ( ""! , ""! , ""! )" enddef

define value of metaavoid1 ( x , y , c ) as norm [x is val : [y is val : [c is val : LET y metadef ( c ) BE [asterisk IN LET asterisk BE [d IN if d = "var" then .not. [x t= y] else if d = "all" then [x t= [y first]] .or. metaavoid1 ( x , y second , c ) else if d != true then metaavoid1* ( x , y tail , c ) else LET y valuedef ( c ) BE [asterisk IN LET asterisk BE [d IN if d = 1 then true else metaavoid1* ( x , y tail , c )]]]]]]] end define

lgcdef lgccharge of metaavoid1 ( lgcvar , lgcvar , lgcvar ) as "0" enddef

metaavoid1* ( " , " , " )

Index 217 of page check

lgcdef lgcname of metaavoid1* ( lgcvar , lgcvar , lgcvar ) as "metaavoid1* ( ""! , ""! , ""! )" enddef

define value of metaavoid1* ( x , y , c ) as norm [x is val : [y is val : [c is val : [y atom .or. [metaavoid1 ( x , y head , c ) .and. metaavoid1* ( x , y tail , c )]]]]] end define

lgcdef lgccharge of metaavoid1* ( lgcvar , lgcvar , lgcvar ) as "0" enddef

objectavoid1 ( " , " , " , " )

Index 218 of page check

lgcdef lgcname of objectavoid1 ( lgcvar , lgcvar , lgcvar , lgcvar ) as "objectavoid1 ( ""! , ""! , ""! , ""! )" enddef

define value of objectavoid1 ( x , y , c , r ) as norm [x is val : [y is val : [c is val : [r is val : if x = <<>> then r else LET y metadef ( c ) BE [asterisk IN LET asterisk BE [d IN if d = "var" then r set+ y else LET y valuedef ( c ) BE [asterisk IN LET asterisk BE [d IN if d = true then if y member x then false raise else r else if d = 0 then objectavoid1 ( x set- [y first] , y second , c , r ) else if d = 1 then r else objectavoid1* ( x , y tail , c , r )]]]]]]]] end define

lgcdef lgccharge of objectavoid1 ( lgcvar , lgcvar , lgcvar , lgcvar ) as "0" enddef

objectavoid1* ( " , " , " , " )

Index 219 of page check

lgcdef lgcname of objectavoid1* ( lgcvar , lgcvar , lgcvar , lgcvar ) as "objectavoid1* ( ""! , ""! , ""! , ""! )" enddef

define value of objectavoid1* ( x , y , c , r ) as norm [x is val : [y is val : [c is val : [r is val : if y atom then r else objectavoid1* ( x , y tail , c , objectavoid1 ( x , y head , c , r ) )]]]] end define

lgcdef lgccharge of objectavoid1* ( lgcvar , lgcvar , lgcvar , lgcvar ) as "0" enddef

metafree ( " , " , " , " )

Index 220 of page check

lgcdef lgcname of metafree ( lgcvar , lgcvar , lgcvar , lgcvar ) as "metafree ( ""! , ""! , ""! , ""! )" enddef

define value of metafree ( x , y , z , c ) as norm [x is val : [y is val : [z is val : [c is val : LET x metadef ( c ) BE [asterisk IN LET asterisk BE [d IN if d = "var" then true else if d = true then z objectterm ( c ) .or. [y metaavoid ( c ) x] else if d != "all" then metafree* ( x tail , y , z , c ) else if y t= [x first] then true else if [y metaavoid ( c ) x] second then true else [[x first metaavoid ( c ) z] .and. metafree ( x second , y , z , c )]]]]]]] end define

lgcdef lgccharge of metafree ( lgcvar , lgcvar , lgcvar , lgcvar ) as "0" enddef

metafree* ( " , " , " , " )

Index 221 of page check

lgcdef lgcname of metafree* ( lgcvar , lgcvar , lgcvar , lgcvar ) as "metafree* ( ""! , ""! , ""! , ""! )" enddef

define value of metafree* ( x , y , z , c ) as norm [x is val : [y is val : [z is val : [c is val : [x atom .or. [metafree ( x head , y , z , c ) .and. metafree* ( x tail , y , z , c )]]]]]] end define

lgcdef lgccharge of metafree* ( lgcvar , lgcvar , lgcvar , lgcvar ) as "0" enddef

objectfree ( " , " , " , " )

Index 222 of page check

lgcdef lgcname of objectfree ( lgcvar , lgcvar , lgcvar , lgcvar ) as "objectfree ( ""! , ""! , ""! , ""! )" enddef

define value of objectfree ( x , y , z , c ) as norm [x is val : [y is val : [z is val : [c is val : if x metadef ( c ) != true then false else LET x valuedef ( c ) BE [asterisk IN LET asterisk BE [d IN if d = true then true else if d = 1 then true else if d != 0 then objectfree* ( x tail , y , z , c ) else if y t= [x first] then true else if [y objectavoid ( c ) x] second then true else [[x first objectavoid ( c ) z] .and. objectfree ( x second , y , z , c )]]]]]]] end define

lgcdef lgccharge of objectfree ( lgcvar , lgcvar , lgcvar , lgcvar ) as "0" enddef

objectfree* ( " , " , " , " )

Index 223 of page check

lgcdef lgcname of objectfree* ( lgcvar , lgcvar , lgcvar , lgcvar ) as "objectfree* ( ""! , ""! , ""! , ""! )" enddef

define value of objectfree* ( x , y , z , c ) as norm [x is val : [y is val : [z is val : [c is val : [x atom .or. [objectfree ( x head , y , z , c ) .and. objectfree* ( x tail , y , z , c )]]]]]] end define

lgcdef lgccharge of objectfree* ( lgcvar , lgcvar , lgcvar , lgcvar ) as "0" enddef

remove ( " , " )

Index 224 of page check

lgcdef lgcname of remove ( lgcvar , lgcvar ) as "remove ( ""! , ""! )" enddef

define value of remove ( x , s ) as norm [x is val : [s is val : if s atom then s else if x t= [s head head] then remove ( x , s tail ) else [s head :: remove ( x , s tail )]]] end define

lgcdef lgccharge of remove ( lgcvar , lgcvar ) as "0" enddef

metaavoid2* ( " , " , " )

Index 225 of page check

lgcdef lgcname of metaavoid2* ( lgcvar , lgcvar , lgcvar ) as "metaavoid2* ( ""! , ""! , ""! )" enddef

define value of metaavoid2* ( x , y , c ) as norm [x is val : [y is val : [c is val : [x .or. [[x head metaavoid ( c ) y] .and. metaavoid2* ( x tail , y , c )]]]]] end define

lgcdef lgccharge of metaavoid2* ( lgcvar , lgcvar , lgcvar ) as "0" enddef

metasubst ( " , " , " )

Index 226 of page check

lgcdef lgcname of metasubst ( lgcvar , lgcvar , lgcvar ) as "metasubst ( ""! , ""! , ""! )" enddef

define value of metasubst ( x , s , c ) as norm [x is val : [s is val : [c is val : LET x metadef ( c ) BE [asterisk IN LET asterisk BE [d IN if d = "var" then lookup ( x , s , x ) else if d != "all" then x head :: metasubst* ( x tail , s , c ) else LET remove ( x first , s ) BE [asterisk IN LET asterisk BE [s IN [x head :: [x first :: [metasubst ( x second , s , c ) :: <<>>]]]]]]]]]] end define

lgcdef lgccharge of metasubst ( lgcvar , lgcvar , lgcvar ) as "0" enddef

metasubst* ( " , " , " )

Index 227 of page check

lgcdef lgcname of metasubst* ( lgcvar , lgcvar , lgcvar ) as "metasubst* ( ""! , ""! , ""! )" enddef

define value of metasubst* ( x , s , c ) as norm [x is val : [s is val : [c is val : if x atom then true else [metasubst ( x head , s , c ) :: metasubst* ( x tail , s , c )]]]] end define

lgcdef lgccharge of metasubst* ( lgcvar , lgcvar , lgcvar ) as "0" enddef

metasubstc ( " , " , " )

Index 228 of page check

lgcdef lgcname of metasubstc ( lgcvar , lgcvar , lgcvar ) as "metasubstc ( ""! , ""! , ""! )" enddef

define value of metasubstc ( x , s , c ) as norm [x is val : [s is val : [c is val : metasubstc1 ( x , s , true , c )]]] end define

lgcdef lgccharge of metasubstc ( lgcvar , lgcvar , lgcvar ) as "0" enddef

metasubstc1 ( " , " , " , " )

Index 229 of page check

lgcdef lgcname of metasubstc1 ( lgcvar , lgcvar , lgcvar , lgcvar ) as "metasubstc1 ( ""! , ""! , ""! , ""! )" enddef

define value of metasubstc1 ( 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 = "var" then metasubstc3 ( x , s , b , c ) else if d then metasubstc2 ( x , s , b , c ) else if d != "all" then x head :: metasubstc1* ( x tail , s , b , c ) else LET remove ( x first , s ) BE [asterisk IN LET asterisk BE [s IN [x head :: [x first :: [metasubstc1 ( x second , s , x first :: b , c ) :: <<>>]]]]]]]]]]] end define

lgcdef lgccharge of metasubstc1 ( lgcvar , lgcvar , lgcvar , lgcvar ) as "0" enddef

metasubstc1* ( " , " , " , " )

Index 230 of page check

lgcdef lgcname of metasubstc1* ( lgcvar , lgcvar , lgcvar , lgcvar ) as "metasubstc1* ( ""! , ""! , ""! , ""! )" enddef

define value of metasubstc1* ( x , s , b , c ) as norm [x is val : [s is val : [b is val : [c is val : if x atom then true else [metasubstc1 ( x head , s , b , c ) :: metasubstc1* ( x tail , s , b , c )]]]]] end define

lgcdef lgccharge of metasubstc1* ( lgcvar , lgcvar , lgcvar , lgcvar ) as "0" enddef

metasubstc2 ( " , " , " , " )

Index 231 of page check

lgcdef lgcname of metasubstc2 ( lgcvar , lgcvar , lgcvar , lgcvar ) as "metasubstc2 ( ""! , ""! , ""! , ""! )" enddef

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

lgcdef lgccharge of metasubstc2 ( lgcvar , lgcvar , lgcvar , lgcvar ) as "0" enddef

metasubstc2* ( " , " , " , " )

Index 232 of page check

lgcdef lgcname of metasubstc2* ( lgcvar , lgcvar , lgcvar , lgcvar ) as "metasubstc2* ( ""! , ""! , ""! , ""! )" enddef

define value of metasubstc2* ( x , s , b , c ) as norm [x is val : [s is val : [b is val : [c is val : if x atom then true else [metasubstc2 ( x head , s , b , c ) :: metasubstc2* ( x tail , s , b , c )]]]]] end define

lgcdef lgccharge of metasubstc2* ( lgcvar , lgcvar , lgcvar , lgcvar ) as "0" enddef

metasubstc3 ( " , " , " , " )

Index 233 of page check

lgcdef lgcname of metasubstc3 ( lgcvar , lgcvar , lgcvar , lgcvar ) as "metasubstc3 ( ""! , ""! , ""! , ""! )" enddef

define value of metasubstc3 ( x , s , b , c ) as norm [x is val : [s is val : [b is val : [c is val : LET lookup ( x , s , true ) BE [asterisk IN LET asterisk BE [v IN if v then x 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

lgcdef lgccharge of metasubstc3 ( lgcvar , lgcvar , lgcvar , lgcvar ) as "0" enddef

expand-All ( " )

Index 234 of page check

lgcdef lgcname of expand-All ( lgcvar ) as "expand-All ( ""! )" enddef

define value of expand-All ( x ) as norm [x is val : LET x 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 [t 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 [s 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 [c IN LET asterisk prime prime prime head BE [asterisk IN LET asterisk prime prime prime tail BE [asterisk prime prime prime IN LET t 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 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 [u 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 [v IN LET asterisk prime prime prime head BE [asterisk IN LET asterisk prime prime prime tail BE [asterisk prime prime prime IN LET stateexpand ( u , s , c ) BE [asterisk IN LET asterisk BE [u IN LET stateexpand ( v , s , c ) BE [asterisk IN LET asterisk BE [v IN expand-All1 ( t , u , v )]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of expand-All ( lgcvar ) as "0" enddef

expand-All1 ( " , " , " )

Index 235 of page check

lgcdef lgcname of expand-All1 ( lgcvar , lgcvar , lgcvar ) as "expand-All1 ( ""! , ""! , ""! )" enddef

define value of expand-All1 ( t , u , v ) as norm [t is val : [u is val : [v is val : if .not. [u r= quote x ,, y end quote] then make-root ( t , quote All u unquote : [v unquote] end quote ) :: [u :: [v :: true]] else expand-All1 ( t , u first , expand-All1 ( t , u second , v ) )]]] end define

lgcdef lgccharge of expand-All1 ( lgcvar , lgcvar , lgcvar ) as "0" enddef

make-string ( " , " )

Index 236 of page check

lgcdef lgcname of make-string ( lgcvar , lgcvar ) as "make-string ( ""! , ""! )" enddef

define value of make-string ( d , x ) as norm [d is val : [x is val : [[0 :: [x :: [d :: <<>>]]] :: <<>>]]] end define

lgcdef lgccharge of make-string ( lgcvar , lgcvar ) as "0" enddef

end diagnose

Index 237 of page check

lgcdef lgcname of end diagnose as "end diagnose" enddef

define value of end diagnose as norm make-string ( true , show "". end show ) end define

lgcdef lgccharge of end diagnose as "0" enddef

Locate ( " , " , " )

Index 238 of page check

lgcdef lgcname of Locate ( lgcvar , lgcvar , lgcvar ) as "Locate ( ""! , ""! , ""! )" enddef

define value of Locate ( t , s , c ) as norm [t is val : [s is val : [c is val : LET reverse ( t debug head ) 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 prime head BE [asterisk IN LET asterisk prime tail BE [asterisk prime IN LET asterisk BE [d IN LET Locate1 ( d tail , c [[ d head ]] [[ "body" ]] , s , true , 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 [v IN if e then exception else v]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of Locate ( lgcvar , lgcvar , lgcvar ) as "0" enddef

Locate1 ( " , " , " , " , " )

Index 239 of page check

lgcdef lgcname of Locate1 ( lgcvar , lgcvar , lgcvar , lgcvar , lgcvar ) as "Locate1 ( ""! , ""! , ""! , ""! , ""! )" enddef

define value of Locate1 ( d , t , s , r , c ) as norm [d is val : [t is val : [s is val : [r is val : [c is val : if t then r else LET t locate-rhs ( c ) BE [asterisk IN LET asterisk BE [v IN LET if v then true else [eval ( v , true , c ) untag] BE [asterisk IN LET asterisk BE [v IN LET if v head = s then t :: [v tail] else r BE [asterisk IN LET asterisk BE [r IN if d atom then r else Locate1 ( d tail , nth ( d head , t tail ) , s , r , c )]]]]]]]]]]] end define

lgcdef lgccharge of Locate1 ( lgcvar , lgcvar , lgcvar , lgcvar , lgcvar ) as "0" enddef

error ( " , " )

Index 240 of page check

lgcdef lgcname of error ( lgcvar , lgcvar ) as "error ( ""! , ""! )" enddef

define value of error ( x , y ) as norm [x is val : [y is val : [[dbug ( x ) y] raise]]] end define

lgcdef lgccharge of error ( lgcvar , lgcvar ) as "0" enddef

mismatch ( " , " , " )

Index 241 of page check

lgcdef lgcname of mismatch ( lgcvar , lgcvar , lgcvar ) as "mismatch ( ""! , ""! , ""! )" enddef

define value of mismatch ( x , y , c ) as norm [x is val : [y is val : [c is val : LET x metadef ( c ) BE [asterisk IN LET asterisk BE [a IN if a = true then false else if a != [y metadef ( c )] then true else mismatch* ( x tail , y tail , c )]]]]] end define

lgcdef lgccharge of mismatch ( lgcvar , lgcvar , lgcvar ) as "0" enddef

mismatch* ( " , " , " )

Index 242 of page check

lgcdef lgcname of mismatch* ( lgcvar , lgcvar , lgcvar ) as "mismatch* ( ""! , ""! , ""! )" enddef

define value of mismatch* ( x , y , c ) as norm [x is val : [y is val : [c is val : if x atom .and. [y atom] then false else if x atom .or. [y atom] then true else [mismatch ( x head , y head , c ) .or. mismatch* ( x tail , y tail , c )]]]] end define

lgcdef lgccharge of mismatch* ( lgcvar , lgcvar , lgcvar ) as "0" enddef

eval-Init ( " , " )

Index 243 of page check

lgcdef lgcname of eval-Init ( lgcvar , lgcvar ) as "eval-Init ( ""! , ""! )" enddef

define value of eval-Init ( x , c ) as norm [x is val : [c is val : if x metaterm ( c ) then [x :: <<>>] :: [<<>> :: [x :: <<>>]] else error ( x , LocateProofLine ( x , c ) diag ( "Init-seqop used on non-meta term:" ) disp ( x ) end diagnose )]] end define

lgcdef lgccharge of eval-Init ( lgcvar , lgcvar ) as "0" enddef

eval-Ponens ( " , " , " )

Index 244 of page check

lgcdef lgcname of eval-Ponens ( lgcvar , lgcvar , lgcvar ) as "eval-Ponens ( ""! , ""! , ""! )" enddef

define value of eval-Ponens ( x , d , c ) as norm [x is val : [d is val : [c is val : LET x 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 mismatch ( quote x infer y end quote , R , c ) then error ( d , LocateProofLine ( d , c ) diag ( "Ponens-seqop used on non-inference:" ) disp ( R ) end diagnose ) else LET R 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 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 [P prime 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 prime IN LET asterisk prime prime prime head BE [asterisk IN LET asterisk prime prime prime tail BE [asterisk prime prime prime IN [[P set+ [P prime]] :: [C :: [R prime :: <<>>]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of eval-Ponens ( lgcvar , lgcvar , lgcvar ) as "0" enddef

eval-Probans ( " , " , " )

Index 245 of page check

lgcdef lgcname of eval-Probans ( lgcvar , lgcvar , lgcvar ) as "eval-Probans ( ""! , ""! , ""! )" enddef

define value of eval-Probans ( x , d , c ) as norm [x is val : [d is val : [c is val : LET x 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 mismatch ( quote x endorse y end quote , R , c ) then error ( d , LocateProofLine ( d , c ) diag ( "Probans-seqop used on non-endorsement:" ) disp ( R ) end diagnose ) else LET R 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 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 prime 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 prime IN LET asterisk prime prime prime head BE [asterisk IN LET asterisk prime prime prime tail BE [asterisk prime prime prime IN [P :: [[C set+ [C prime]] :: [R prime :: <<>>]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of eval-Probans ( lgcvar , lgcvar , lgcvar ) as "0" enddef

eval-Verify ( " , " , " )

Index 246 of page check

lgcdef lgcname of eval-Verify ( lgcvar , lgcvar , lgcvar ) as "eval-Verify ( ""! , ""! , ""! )" enddef

define value of eval-Verify ( x , d , c ) as norm [x is val : [d is val : [c is val : LET x 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 mismatch ( quote x endorse y end quote , R , c ) then error ( d , LocateProofLine ( d , c ) diag ( "Verify-seqop used on non-endorsement:" ) disp ( R ) end diagnose ) else LET R 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 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 prime 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 prime IN LET asterisk prime prime prime head BE [asterisk IN LET asterisk prime prime prime tail BE [asterisk prime prime prime IN if [eval ( C prime , true , c ) apply [c maptag]] untag catch = [false :: true] then P :: [C :: [R prime :: <<>>]] else error ( d , LocateProofLine ( d , c ) diag ( "Verify-seqop used on false condition:" ) disp ( C prime ) end diagnose )]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of eval-Verify ( lgcvar , lgcvar , lgcvar ) as "0" enddef

eval-Curry ( " , " , " )

Index 247 of page check

lgcdef lgcname of eval-Curry ( lgcvar , lgcvar , lgcvar ) as "eval-Curry ( ""! , ""! , ""! )" enddef

define value of eval-Curry ( x , d , c ) as norm [x is val : [d is val : [c is val : LET x 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 mismatch ( quote [x oplus y] infer z end quote , R , c ) then error ( d , LocateProofLine ( d , c ) diag ( "Curry-seqop used on unfit argument:" ) disp ( R ) end diagnose ) else LET R 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 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 [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 prime prime prime head BE [asterisk IN LET asterisk prime prime prime tail BE [asterisk prime 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 prime IN LET asterisk prime prime prime prime head BE [asterisk IN LET asterisk prime prime prime prime tail BE [asterisk prime prime prime prime IN LET asterisk BE [X IN LET asterisk prime prime prime prime head BE [asterisk IN LET asterisk prime prime prime prime tail BE [asterisk prime prime 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 prime prime IN LET asterisk prime prime prime prime prime head BE [asterisk IN LET asterisk prime prime prime prime prime tail BE [asterisk prime prime prime prime prime IN LET asterisk BE [Y IN LET asterisk prime prime prime prime prime head BE [asterisk IN LET asterisk prime prime prime prime prime tail BE [asterisk prime prime prime prime prime 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 [Z IN LET asterisk prime prime prime head BE [asterisk IN LET asterisk prime prime prime tail BE [asterisk prime prime prime IN [P :: [C :: [[make-root ( R , quote X unquote infer [Y unquote infer [Z unquote]] end quote ) :: [X :: [[make-root ( R , quote Y unquote infer [Z unquote] end quote ) :: [Y :: [Z :: true]]] :: true]]] :: <<>>]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of eval-Curry ( lgcvar , lgcvar , lgcvar ) as "0" enddef

eval-Uncurry ( " , " , " )

Index 248 of page check

lgcdef lgcname of eval-Uncurry ( lgcvar , lgcvar , lgcvar ) as "eval-Uncurry ( ""! , ""! , ""! )" enddef

define value of eval-Uncurry ( x , d , c ) as norm [x is val : [d is val : [c is val : LET x 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 mismatch ( quote x infer [y infer z] end quote , R , c ) then error ( d , LocateProofLine ( d , c ) diag ( "Uncurry-seqop used on unfit argument:" ) disp ( R ) end diagnose ) else LET R 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 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 [X 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 [if asterisk atom then asterisk else [asterisk head]] :: [[if asterisk atom then asterisk else [asterisk tail]] :: true] BE [asterisk prime prime prime prime IN LET asterisk prime prime prime prime head BE [asterisk IN LET asterisk prime prime prime prime tail BE [asterisk prime prime prime prime IN LET asterisk prime prime prime prime head BE [asterisk IN LET asterisk prime prime prime prime tail BE [asterisk prime prime 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 prime prime IN LET asterisk prime prime prime prime prime head BE [asterisk IN LET asterisk prime prime prime prime prime tail BE [asterisk prime prime prime prime prime IN LET asterisk BE [Y IN LET asterisk prime prime prime prime prime head BE [asterisk IN LET asterisk prime prime prime prime prime tail BE [asterisk prime prime prime 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 prime prime prime IN LET asterisk prime prime prime prime prime prime head BE [asterisk IN LET asterisk prime prime prime prime prime prime tail BE [asterisk prime prime prime prime prime prime IN LET asterisk BE [Z IN LET asterisk prime prime prime prime prime prime head BE [asterisk IN LET asterisk prime prime prime prime prime prime tail BE [asterisk prime prime prime 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 [P :: [C :: [[make-root ( R , quote [X unquote oplus [Y unquote]] infer [Z unquote] end quote ) :: [[make-root ( R , quote X unquote oplus [Y unquote] end quote ) :: [X :: [Y :: true]]] :: [Z :: true]]] :: <<>>]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of eval-Uncurry ( lgcvar , lgcvar , lgcvar ) as "0" enddef

eval-Deref ( " , " , " )

Index 249 of page check

lgcdef lgcname of eval-Deref ( lgcvar , lgcvar , lgcvar ) as "eval-Deref ( ""! , ""! , ""! )" enddef

define value of eval-Deref ( x , d , c ) as norm [x is val : [d is val : [c is val : LET x 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 LET R stmt-rhs ( c ) BE [asterisk IN LET asterisk BE [R prime IN if R prime = true then error ( d , LocateProofLine ( d , c ) diag ( "Deref-seqop used on undefined statement:" ) disp ( R ) end diagnose ) else if R prime metaterm ( c ) then P :: [C :: [R prime :: <<>>]] else error ( d , LocateProofLine ( d , c ) diag ( "Deref-seqop applied to" ) disp ( R ) diag ( "produced non-meta term:" ) disp ( R prime ) end diagnose )]]]]]]]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of eval-Deref ( lgcvar , lgcvar , lgcvar ) as "0" enddef

eval-at ( " , " , " )

Index 250 of page check

lgcdef lgcname of eval-at ( lgcvar , lgcvar , lgcvar ) as "eval-at ( ""! , ""! , ""! )" enddef

define value of eval-at ( x , v , c ) as norm [x is val : [v is val : [c is val : if .not. [x r= quote x at y end quote] then LET seqeval ( x , c ) 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 [P :: [C :: [eval-at1 ( R , v , true , x , c ) :: <<>>]]]]]]]]]]]]]]]]]]]]]] else if x second metaterm ( c ) then eval-at ( x first , x second :: v , c ) else error ( x , LocateProofLine ( x , c ) diag ( "At-seqop used on non-meta-term:" ) disp ( x second ) end diagnose )]]] end define

lgcdef lgccharge of eval-at ( lgcvar , lgcvar , lgcvar ) as "0" enddef

eval-at1 ( " , " , " , " , " )

Index 251 of page check

lgcdef lgcname of eval-at1 ( lgcvar , lgcvar , lgcvar , lgcvar , lgcvar ) as "eval-at1 ( ""! , ""! , ""! , ""! , ""! )" enddef

define value of eval-at1 ( R , v , s , d , c ) as norm [R is val : [v is val : [s is val : [d is val : [c is val : if v then metasubstc ( R , s , c ) else if mismatch ( quote All x : y end quote , R , c ) then error ( d , LocateProofLine ( d , c ) diag ( "At-seqop used on non-quantifier:" ) disp ( R ) end diagnose ) else eval-at1 ( R second , v tail , [R first :: [v head]] :: s , d , c )]]]]] end define

lgcdef lgccharge of eval-at1 ( lgcvar , lgcvar , lgcvar , lgcvar , lgcvar ) as "0" enddef

eval-infer ( " , " , " , " )

Index 252 of page check

lgcdef lgcname of eval-infer ( lgcvar , lgcvar , lgcvar , lgcvar ) as "eval-infer ( ""! , ""! , ""! , ""! )" enddef

define value of eval-infer ( x , y , d , c ) as norm [x is val : [y is val : [d is val : [c is val : if .not. [x metaterm ( c )] then error ( d , LocateProofLine ( d , c ) diag ( "Infer-seqop used on non-meta term:" ) disp ( x ) end diagnose ) else LET y 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 [[P set- x] :: [C :: [[make-root ( R , quote x unquote infer [R unquote] end quote ) :: [x :: [R :: true]]] :: <<>>]]]]]]]]]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of eval-infer ( lgcvar , lgcvar , lgcvar , lgcvar ) as "0" enddef

eval-endorse ( " , " , " , " )

Index 253 of page check

lgcdef lgcname of eval-endorse ( lgcvar , lgcvar , lgcvar , lgcvar ) as "eval-endorse ( ""! , ""! , ""! , ""! )" enddef

define value of eval-endorse ( x , y , d , c ) as norm [x is val : [y is val : [d is val : [c is val : if .not. [x metaterm ( c )] then error ( d , LocateProofLine ( d , c ) diag ( "Endorse-seqop used on non-meta term:" ) disp ( x ) end diagnose ) else LET y 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 [P :: [[C set- x] :: [[make-root ( R , quote x unquote endorse [R unquote] end quote ) :: [x :: [R :: true]]] :: <<>>]]]]]]]]]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of eval-endorse ( lgcvar , lgcvar , lgcvar , lgcvar ) as "0" enddef

eval-ie ( " , " , " , " )

Index 254 of page check

lgcdef lgcname of eval-ie ( lgcvar , lgcvar , lgcvar , lgcvar ) as "eval-ie ( ""! , ""! , ""! , ""! )" enddef

define value of eval-ie ( x , y , d , c ) as norm [x is val : [y is val : [d is val : [c is val : LET x 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 R t= [y stmt-rhs ( c )] then P :: [C :: [y :: <<>>]] else error ( d , LocateProofLine ( d , c ) diag ( "IdEst-seqop used on non-matching result. Attempt to match" ) disp ( y ) diag ( "with" ) disp ( R ) end diagnose )]]]]]]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of eval-ie ( lgcvar , lgcvar , lgcvar , lgcvar ) as "0" enddef

eval-all ( " , " , " , " )

Index 255 of page check

lgcdef lgcname of eval-all ( lgcvar , lgcvar , lgcvar , lgcvar ) as "eval-all ( ""! , ""! , ""! , ""! )" enddef

define value of eval-all ( x , y , d , c ) as norm [x is val : [y is val : [d is val : [c is val : LET y 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 .not. [x metaavoid* ( c ) P] then error ( d , LocateProofLine ( d , c ) diag ( "All-seqop catches variable" ) disp ( x ) diag ( "which is free in the following premise:" ) disp ( x metaavoid* ( c ) P ) end diagnose ) else if .not. [x metaavoid* ( c ) C] then error ( d , LocateProofLine ( d , c ) diag ( "All-seqop catches variable" ) disp ( x ) diag ( "which is free in the following condition:" ) disp ( x metaavoid* ( c ) C ) end diagnose ) else [P :: [C :: [[make-root ( R , quote All x unquote : [R unquote] end quote ) :: [x :: [R :: true]]] :: <<>>]]]]]]]]]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of eval-all ( lgcvar , lgcvar , lgcvar , lgcvar ) as "0" enddef

eval-cut ( " , " , " )

Index 256 of page check

lgcdef lgcname of eval-cut ( lgcvar , lgcvar , lgcvar ) as "eval-cut ( ""! , ""! , ""! )" enddef

define value of eval-cut ( x , y , c ) as norm [x is val : [y is val : [c is val : LET x 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 LET y 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 prime 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 prime 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 prime IN LET asterisk prime prime prime head BE [asterisk IN LET asterisk prime prime prime tail BE [asterisk prime prime prime IN [[P union [P prime set- R]] :: [[C union [C prime]] :: [R prime :: <<>>]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of eval-cut ( lgcvar , lgcvar , lgcvar ) as "0" enddef

seqeval ( " , " )

Index 257 of page check

lgcdef lgcname of seqeval ( lgcvar , lgcvar ) as "seqeval ( ""! , ""! )" enddef

define value of seqeval ( t , c ) as norm [t is val : [c is val : if t r= quote x Init end quote then eval-Init ( t first , c ) else if t r= quote x Ponens end quote then eval-Ponens ( seqeval ( t first , c ) , t first , c ) else if t r= quote x Probans end quote then eval-Probans ( seqeval ( t first , c ) , t first , c ) else if t r= quote x Verify end quote then eval-Verify ( seqeval ( t first , c ) , t first , c ) else if t r= quote x Curry end quote then eval-Curry ( seqeval ( t first , c ) , t first , c ) else if t r= quote x Uncurry end quote then eval-Uncurry ( seqeval ( t first , c ) , t first , c ) else if t r= quote x Deref end quote then eval-Deref ( seqeval ( t first , c ) , t first , c ) else if t r= quote x at y end quote then eval-at ( t , true , c ) else if t r= quote x infer y end quote then eval-infer ( t first , seqeval ( t second , c ) , t second , c ) else if t r= quote x endorse y end quote then eval-endorse ( t first , seqeval ( t second , c ) , t second , c ) else if t r= quote x id est y end quote then eval-ie ( seqeval ( t first , c ) , t second , t first , c ) else if t r= quote All x : y end quote then eval-all ( t first , seqeval ( t second , c ) , t second , c ) else if t r= quote x ;; y end quote then eval-cut ( seqeval ( t first , c ) , seqeval ( t second , c ) , c ) else error ( t , LocateProofLine ( t , c ) diag ( "Unknown seqop in root of" ) disp ( t ) end diagnose )]] end define

lgcdef lgccharge of seqeval ( lgcvar , lgcvar ) as "0" enddef

Repeat

Index 258 of page check

lgcdef lgcname of Repeat as "Repeat" enddef

lgcdef lgccharge of Repeat as "0" enddef

prepare proof indentation

Index 259 of page check

Define tex use of prepare proof indentation as " \ifx\indentation\undefined \newlength{\indentation}\setlength{\indentation}{0em} \fi" end define

lgcdef lgcname of prepare proof indentation as "prepare proof indentation" enddef

lgcdef lgccharge of prepare proof indentation as "0" enddef

claiming ( " , " )

Index 260 of page check

lgcdef lgcname of claiming ( lgcvar , lgcvar ) as "claiming ( ""! , ""! )" enddef

define value of claiming ( x , y ) as norm [x is val : [y is val : if .not. [y r= quote u &c v end quote] then x t= y else [claiming ( x , y first ) .or. claiming ( x , y second )]]] end define

lgcdef lgccharge of claiming ( lgcvar , lgcvar ) as "0" enddef

proofcheck

Index 261 of page check

lgcdef lgcname of proofcheck as "proofcheck" enddef

define value of proofcheck as \ c . proofcheck1 ( c ) end define

lgcdef lgccharge of proofcheck as "0" enddef

proofcheck1 ( " )

Index 262 of page check

lgcdef lgcname of proofcheck1 ( lgcvar ) as "proofcheck1 ( ""! )" enddef

define value of proofcheck1 ( c ) as norm [c is val : LET proofcheck2 ( 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 [v IN if v != true then diagnose v end diagnose else if .not. e then true else diagnose show quote "In proof checker: unprocessed exception" end quote end show end diagnose]]]]]]]]] end define

lgcdef lgccharge of proofcheck1 ( lgcvar ) as "0" enddef

proofcheck2 ( " )

Index 263 of page check

lgcdef lgcname of proofcheck2 ( lgcvar ) as "proofcheck2 ( ""! )" enddef

define value of proofcheck2 ( c ) as norm [c is val : LET c [[ 0 ]] BE [asterisk IN LET asterisk BE [r IN LET seqeval* ( c [[ r ]] [[ "codex" ]] [[ r ]] , c ) BE [asterisk IN LET asterisk BE [a IN LET circularitycheck1 ( r , c , a , a ) BE [asterisk IN LET asterisk BE [x IN true]]]]]]] end define

lgcdef lgccharge of proofcheck2 ( lgcvar ) as "0" enddef

seqeval* ( " , " )

Index 264 of page check

lgcdef lgcname of seqeval* ( lgcvar , lgcvar ) as "seqeval* ( ""! , ""! )" enddef

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 rhs ( c , !"name" ) idx :: LF ) .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

lgcdef lgccharge of seqeval* ( lgcvar , lgcvar ) as "0" enddef

premisecheck* ( " , " )

Index 265 of page check

lgcdef lgcname of premisecheck* ( lgcvar , lgcvar ) as "premisecheck* ( ""! , ""! )" enddef

define value of premisecheck* ( P , c ) as norm [P is val : [c is val : if P atom then true else [premisecheck ( P head , c ) .and. premisecheck* ( P tail , c )]]] end define

lgcdef lgccharge of premisecheck* ( lgcvar , lgcvar ) as "0" enddef

checked ( " , " )

Index 266 of page check

lgcdef lgcname of checked ( lgcvar , lgcvar ) as "checked ( ""! , ""! )" enddef

define value of checked ( r , c ) as norm [r is val : [c is val : LET c [[ r ]] [[ "codex" ]] [[ r ]] [[ 0 ]] [[ 0 ]] [[ "claim" ]] third BE [asterisk IN LET asterisk BE [x IN if claiming ( quote proofcheck end quote , x ) then true else if .not. x then false else LET c [[ r ]] [[ "bibliography" ]] first BE [asterisk IN LET asterisk BE [r IN if r then false else LET c [[ r ]] [[ "codex" ]] [[ r ]] [[ 0 ]] [[ 0 ]] [[ "claim" ]] third BE [asterisk IN LET asterisk BE [x IN claiming ( quote proofcheck end quote , x )]]]]]]]] end define

lgcdef lgccharge of checked ( lgcvar , lgcvar ) as "0" enddef

premisecheck ( " , " )

Index 267 of page check

lgcdef lgcname of premisecheck ( lgcvar , lgcvar ) as "premisecheck ( ""! , ""! )" enddef

define value of premisecheck ( P , c ) as norm [P is val : [c is val : LET P ref BE [asterisk IN LET asterisk BE [r IN LET P idx BE [asterisk IN LET asterisk BE [i IN if [r != [c [[ 0 ]]]] .and. [c [[ r ]] [[ "diagnose" ]] untag != true] then error ( P , diag ( "Lemma" ) disp ( P ) diag ( "occurs on a page with a non-empty diagnose." ) diag ( "Avoid referencing that lemma." ) end diagnose ) else if .not. checked ( r , c ) then error ( P , diag ( "Lemma" ) disp ( P ) diag ( "occurs on a page which has not been checked" ) diag ( "by the present proof checker." ) diag ( "Avoid referencing that lemma." ) end diagnose ) else if P proof-rhs ( c ) then error ( P , LocateProofLine ( P , c ) diag ( "Lemma" ) disp ( P ) diag ( "has no proof. Avoid referencing that lemma." ) end diagnose ) else true]]]]]] end define

lgcdef lgccharge of premisecheck ( lgcvar , lgcvar ) as "0" enddef

circularitycheck1 ( " , " , " , " )

Index 268 of page check

lgcdef lgcname of circularitycheck1 ( lgcvar , lgcvar , lgcvar , lgcvar ) as "circularitycheck1 ( ""! , ""! , ""! , ""! )" enddef

define value of circularitycheck1 ( r , c , a , q ) as norm [r is val : [c is val : [a is val : [q is val : if a = true then q 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 x intp then circularitycheck2 ( r , c , x , q ) else circularitycheck1 ( r , c , y , circularitycheck1 ( r , c , x , q ) )]]]]]]]]]]]] end define

lgcdef lgccharge of circularitycheck1 ( lgcvar , lgcvar , lgcvar , lgcvar ) as "0" enddef

circularitycheck2 ( " , " , " , " )

Index 269 of page check

lgcdef lgcname of circularitycheck2 ( lgcvar , lgcvar , lgcvar , lgcvar ) as "circularitycheck2 ( ""! , ""! , ""! , ""! )" enddef

define value of circularitycheck2 ( r , c , i , q ) as norm [r is val : [c is val : [i is val : [q is val : LET q [[ i ]] BE [asterisk IN LET asterisk BE [v IN if v = 0 then LET c [[ r ]] [[ "codex" ]] [[ r ]] [[ i ]] [[ 0 ]] [[ proof ]] second BE [asterisk IN LET asterisk BE [n IN error ( n , diag ( "Circular proof. The vicious circle includes lemma" ) disp ( n ) end diagnose )]] else if v = 1 then q else [circularitycheck2* ( r , c , v head , q [[ i -> 0 ]] ) [[ i -> 1 ]]]]]]]]] end define

lgcdef lgccharge of circularitycheck2 ( lgcvar , lgcvar , lgcvar , lgcvar ) as "0" enddef

circularitycheck2* ( " , " , " , " )

Index 270 of page check

lgcdef lgcname of circularitycheck2* ( lgcvar , lgcvar , lgcvar , lgcvar ) as "circularitycheck2* ( ""! , ""! , ""! , ""! )" enddef

define value of circularitycheck2* ( r , c , l , q ) as norm [r is val : [c is val : [l is val : [q is val : if l atom then q else LET l 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 asterisk BE [l IN LET circularitycheck2* ( r , c , l , q ) BE [asterisk IN LET asterisk BE [q IN if r != [p ref] then q else circularitycheck2 ( r , c , p idx , q )]]]]]]]]]]]]]] end define

lgcdef lgccharge of circularitycheck2* ( lgcvar , lgcvar , lgcvar , lgcvar ) as "0" enddef

lemma1

Index 271 of page check

lgcdef lgcname of lemma1 as "lemma1" enddef

lgcdef lgccharge of lemma1 as "0" enddef

define proof of lemma1 as \ p . \ c . [true [[ hook-arg -> quote All #x : All #y : [#x infer [#y infer [#x Init]]] end quote ]]] end define

define statement of lemma1 as All #x : All #y : [#x infer [#y infer #x]] end define

lemma2

Index 272 of page check

lgcdef lgcname of lemma2 as "lemma2" enddef

lgcdef lgccharge of lemma2 as "0" enddef

define proof of lemma2 as \ p . \ c . taceval1 ( quote p.Prop end quote , quote All #x : Line L02 : p.A2 >> [#x p.imply [[#y p.imply #x] p.imply #x]] p.imply [[#x p.imply [#y p.imply #x]] p.imply [#x p.imply #x]] ; Line L03 : p.A1 >> #x p.imply [[#y p.imply #x] p.imply #x] ; Line L04 : [p.MP ponens L02] ponens [L03 Conclude] >> [#x p.imply [#y p.imply #x]] p.imply [#x p.imply #x] ; Line L05 : p.A1 >> #x p.imply [#y p.imply #x] ; [[[p.MP ponens L04] ponens [L05 Conclude]] conclude [#x p.imply #x]] end quote , c ) end define

define unitac of lemma2 as \ u . unitac-lemma ( u ) end define

define statement of lemma2 as p.Prop infer All #x : [#x p.imply #x] end define

lemma2a

Index 273 of page check

lgcdef lgcname of lemma2a as "lemma2a" enddef

lgcdef lgccharge of lemma2a as "0" enddef

define proof of lemma2a as \ p . \ c . taceval1 ( quote p.Prop end quote , quote All #x : Line L04 : [p.MP ponens p.A2] ponens [p.A1 Conclude] >> [#x p.imply [#y p.imply #x]] p.imply [#x p.imply #x] ; Line L05 : p.A1 >> #x p.imply [#y p.imply #x] ; [[[p.MP ponens L04] ponens [L05 Conclude]] conclude [#x p.imply #x]] end quote , c ) end define

define unitac of lemma2a as \ u . unitac-lemma ( u ) end define

define statement of lemma2a as p.Prop infer All #x : [#x p.imply #x] end define

lemma2b

Index 274 of page check

lgcdef lgcname of lemma2b as "lemma2b" enddef

lgcdef lgccharge of lemma2b as "0" enddef

define proof of lemma2b as \ p . \ c . taceval1 ( quote p.Prop end quote , quote All #x : Line L05 : p.A1 >> #x p.imply [#y p.imply #x] ; [[[p.MP ponens [[p.MP ponens p.A2] ponens [p.A1 Conclude]]] ponens [L05 Conclude]] conclude [#x p.imply #x]] end quote , c ) end define

define unitac of lemma2b as \ u . unitac-lemma ( u ) end define

define statement of lemma2b as p.Prop infer All #x : [#x p.imply #x] end define

lemma2c

Index 275 of page check

lgcdef lgcname of lemma2c as "lemma2c" enddef

lgcdef lgccharge of lemma2c as "0" enddef

define proof of lemma2c as \ p . \ c . taceval1 ( quote p.Prop end quote , quote All #x : [[[p.MP ponens [[p.MP ponens p.A2] ponens [p.A1 Conclude]]] ponens [[p.A1 At at #y] Conclude]] conclude [#x p.imply #x]] end quote , c ) end define

define unitac of lemma2c as \ u . unitac-lemma ( u ) end define

define statement of lemma2c as p.Prop infer All #x : [#x p.imply #x] end define

lemma2d

Index 276 of page check

lgcdef lgcname of lemma2d as "lemma2d" enddef

lgcdef lgccharge of lemma2d as "0" enddef

define proof of lemma2d as \ p . \ c . taceval1 ( quote p.Prop end quote , quote [All #x : [[p.MP ponens [[p.MP ponens p.A2] ponens [p.A1 Conclude]]] ponens [[p.A1 At at #y] Conclude]]] conclude All #x : [#x p.imply #x] end quote , c ) end define

define unitac of lemma2d as \ u . unitac-lemma ( u ) end define

define statement of lemma2d as p.Prop infer All #x : [#x p.imply #x] end define

lemma2e

Index 277 of page check

lgcdef lgcname of lemma2e as "lemma2e" enddef

lgcdef lgccharge of lemma2e as "0" enddef

define proof of lemma2e as \ p . \ c . taceval1 ( quote p.Prop end quote , quote [[p.MP ponens [[p.MP ponens p.A2] ponens [p.A1 Conclude]]] ponens [[p.A1 At at #y] Conclude]] All conclude All #x : [#x p.imply #x] end quote , c ) end define

define unitac of lemma2e as \ u . unitac-lemma ( u ) end define

define statement of lemma2e as p.Prop infer All #x : [#x p.imply #x] end define

lemma2f

Index 278 of page check

lgcdef lgcname of lemma2f as "lemma2f" enddef

lgcdef lgccharge of lemma2f as "0" enddef

define proof of lemma2f as \ p . \ c . taceval1 ( quote p.IProp oplus p.A3 end quote , quote All #x : [[[p.MP ponens [[p.MP ponens p.A2] ponens [p.A1 Conclude]]] ponens [[p.A1 At at #y] Conclude]] conclude [#x p.imply #x]] end quote , c ) end define

define unitac of lemma2f as \ u . unitac-lemma ( u ) end define

define statement of lemma2f as [p.IProp oplus p.A3] infer All #x : [#x p.imply #x] end define

lemma3

Index 279 of page check

lgcdef lgcname of lemma3 as "lemma3" enddef

lgcdef lgccharge of lemma3 as "0" enddef

define proof of lemma3 as \ p . \ c . taceval1 ( quote p.Prop end quote , quote Line L01 : Block >> Begin ; All #x : Line L03 : Premise >> #x ; [L03 conclude #x] line L05 : Block >> End ; [[L05 ponens L05] conclude All #x : [#x infer #x]] end quote , c ) end define

define unitac of lemma3 as \ u . unitac-lemma ( u ) end define

define statement of lemma3 as p.Prop infer All #x : [#x infer #x] end define

lemma4a

Index 280 of page check

lgcdef lgcname of lemma4a as "lemma4a" enddef

lgcdef lgccharge of lemma4a as "0" enddef

define proof of lemma4a as \ p . \ c . taceval1 ( quote p.Prop end quote , quote p.IProp Rule conclude p.IProp end quote , c ) end define

define unitac of lemma4a as \ u . unitac-lemma ( u ) end define

define statement of lemma4a as p.Prop infer p.IProp end define

lemma4b

Index 281 of page check

lgcdef lgcname of lemma4b as "lemma4b" enddef

lgcdef lgccharge of lemma4b as "0" enddef

define proof of lemma4b as \ p . \ c . taceval1 ( quote p.Prop end quote , quote p.A1 Rule conclude p.A1 end quote , c ) end define

define unitac of lemma4b as \ u . unitac-lemma ( u ) end define

define statement of lemma4b as p.Prop infer p.A1 end define

lemma4c

Index 282 of page check

lgcdef lgcname of lemma4c as "lemma4c" enddef

lgcdef lgccharge of lemma4c as "0" enddef

define proof of lemma4c as \ p . \ c . taceval1 ( quote p.Prop end quote , quote p.A2 Rule conclude p.A2 end quote , c ) end define

define unitac of lemma4c as \ u . unitac-lemma ( u ) end define

define statement of lemma4c as p.Prop infer p.A2 end define

lemma4d

Index 283 of page check

lgcdef lgcname of lemma4d as "lemma4d" enddef

lgcdef lgccharge of lemma4d as "0" enddef

define proof of lemma4d as \ p . \ c . taceval1 ( quote p.Prop end quote , quote p.A3 Rule conclude p.A3 end quote , c ) end define

define unitac of lemma4d as \ u . unitac-lemma ( u ) end define

define statement of lemma4d as p.Prop infer p.A3 end define

lemma4e

Index 284 of page check

lgcdef lgcname of lemma4e as "lemma4e" enddef

lgcdef lgccharge of lemma4e as "0" enddef

define proof of lemma4e as \ p . \ c . taceval1 ( quote p.IProp oplus p.A3 end quote , quote p.Prop Rule conclude p.Prop end quote , c ) end define

define unitac of lemma4e as \ u . unitac-lemma ( u ) end define

define statement of lemma4e as [p.IProp oplus p.A3] infer p.Prop end define

lemma4f

Index 285 of page check

lgcdef lgcname of lemma4f as "lemma4f" enddef

lgcdef lgccharge of lemma4f as "0" enddef

define proof of lemma4f as \ p . \ c . taceval1 ( quote p.IProp end quote , quote Line L01 : Premise >> p.A3 ; [p.Prop Rule conclude p.Prop] end quote , c ) end define

define unitac of lemma4f as \ u . unitac-lemma ( u ) end define

define statement of lemma4f as p.IProp infer [p.A3 infer p.Prop] end define

lemma4g

Index 286 of page check

lgcdef lgcname of lemma4g as "lemma4g" enddef

lgcdef lgccharge of lemma4g as "0" enddef

define proof of lemma4g as \ p . \ c . taceval1 ( quote p.IProp end quote , quote Line L01 : Premise >> p.A3 ; [lemma2 conclude [x p.imply x]] end quote , c ) end define

define unitac of lemma4g as \ u . unitac-lemma ( u ) end define

define statement of lemma4g as p.IProp infer [p.A3 infer [x p.imply x]] end define

int2string ( " , " )

Index 287 of page check

lgcdef lgcname of int2string ( lgcvar , lgcvar ) as "int2string ( ""! , ""! )" enddef

define value of int2string ( t , v ) as norm [t is val : [v is val : if v > 0 then [0 :: [int2string1 ( v , "". ) :: [t debug]]] :: <<>> else if v = 0 then [0 :: ["0" :: [t debug]]] :: <<>> else [[0 :: [[[%% %2 %5 %6 * int2string1 ( - v , "". )] + logand ( "-" , %% %2 %5 %5 )] :: [t debug]]] :: <<>>]]] end define

lgcdef lgccharge of int2string ( lgcvar , lgcvar ) as "0" enddef

int2string1 ( " , " )

Index 288 of page check

lgcdef lgcname of int2string1 ( lgcvar , lgcvar ) as "int2string1 ( ""! , ""! )" enddef

define value of int2string1 ( v , r ) as norm [v is val : [r is val : if v = 0 then r else LET logand ( "0" , %% %2 %5 %5 ) BE [asterisk IN LET asterisk BE [z IN LET floor ( v , %% %1 %0 ) 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 int2string1 ( x , [[%% %2 %5 %6 * r] + z] + y )]]]]]]]]]]]] end define

lgcdef lgccharge of int2string1 ( lgcvar , lgcvar ) as "0" enddef

val2term ( " , " )

Index 289 of page check

lgcdef lgcname of val2term ( lgcvar , lgcvar ) as "val2term ( ""! , ""! )" enddef

define value of val2term ( t , v ) as norm [t is val : [v is val : if v = true then make-root ( t , quote true end quote ) :: true else if v = false then make-root ( t , quote false end quote ) :: true else if v pairp then make-root ( t , quote val2term ( t , v head ) unquote :: [val2term ( t , v tail ) unquote] end quote ) :: [val2term ( t , v head ) :: [val2term ( t , v tail ) :: true]] else if v mapp then make-root ( t , quote map ( *** ) end quote ) :: [[make-root ( t , quote *** end quote ) :: true] :: true] else if v objectp then make-root ( t , quote object ( val2term ( t , destruct ( v ) ) unquote ) end quote ) :: [val2term ( t , destruct ( v ) ) :: true] else if v = 0 then make-root ( t , quote 0 end quote ) :: true else if v < 0 then make-root ( t , quote - [card2term ( t , - v ) unquote] end quote ) :: [card2term ( t , - v ) :: true] else card2term ( t , v )]] end define

lgcdef lgccharge of val2term ( lgcvar , lgcvar ) as "0" enddef

card2term ( " , " )

Index 290 of page check

lgcdef lgcname of card2term ( lgcvar , lgcvar ) as "card2term ( ""! , ""! )" enddef

define value of card2term ( t , v ) as norm [t is val : [v is val : if v = 0 then make-root ( t , quote %% end quote ) :: true else if evenp ( v ) then make-root ( t , quote card2term ( t , half ( v ) ) unquote %0 end quote ) :: [card2term ( t , half ( v ) ) :: true] else [make-root ( t , quote card2term ( t , half ( v ) ) unquote %1 end quote ) :: [card2term ( t , half ( v ) ) :: true]]]] end define

lgcdef lgccharge of card2term ( lgcvar , lgcvar ) as "0" enddef

univar ( " , " , " )

Index 291 of page check

lgcdef lgcname of univar ( lgcvar , lgcvar , lgcvar ) as "univar ( ""! , ""! , ""! )" enddef

define value of univar ( t , v , i ) as norm [t is val : [v is val : [i is val : [make-root ( t , quote unifresh ( v unquote , int2string ( t , i ) unquote ) end quote ) :: [v :: [int2string ( t , i ) :: true]]]]]] end define

lgcdef lgccharge of univar ( lgcvar , lgcvar , lgcvar ) as "0" enddef

pterm ( " , " )

Index 292 of page check

lgcdef lgcname of pterm ( lgcvar , lgcvar ) as "pterm ( ""! , ""! )" enddef

define value of pterm ( t , c ) as norm [t is val : [c is val : pterm1 ( t , true , 1 , c )]] end define

lgcdef lgccharge of pterm ( lgcvar , lgcvar ) as "0" enddef

pterm1 ( " , " , " , " )

Index 293 of page check

lgcdef lgcname of pterm1 ( lgcvar , lgcvar , lgcvar , lgcvar ) as "pterm1 ( ""! , ""! , ""! , ""! )" enddef

define value of pterm1 ( t , s , n , c ) as norm [t is val : [s is val : [n is val : [c is val : LET t metadef ( c ) BE [asterisk IN LET asterisk BE [d IN if d != "all" then pterm2 ( t , s , c ) else LET univar ( t first , t first , n ) BE [asterisk IN LET asterisk BE [v IN LET pterm1 ( t second , [t first :: v] :: s , n + 1 , c ) BE [asterisk IN LET asterisk BE [t prime IN [make-root ( t , quote All v unquote : [t prime unquote] end quote ) :: [v :: [t prime :: true]]]]]]]]]]]]] end define

lgcdef lgccharge of pterm1 ( lgcvar , lgcvar , lgcvar , lgcvar ) as "0" enddef

pterm2 ( " , " , " )

Index 294 of page check

lgcdef lgcname of pterm2 ( lgcvar , lgcvar , lgcvar ) as "pterm2 ( ""! , ""! , ""! )" enddef

define value of pterm2 ( t , s , c ) as norm [t is val : [s is val : [c is val : LET t metadef ( c ) BE [asterisk IN LET asterisk BE [d IN LET if d = "all" then [t first :: [t first]] :: s else s BE [asterisk IN LET asterisk BE [s IN if d != "var" then t head :: pterm2* ( t tail , s , c ) else LET lookup ( t , s , true ) BE [asterisk IN LET asterisk BE [n IN if n = true then t else n]]]]]]]]] end define

lgcdef lgccharge of pterm2 ( lgcvar , lgcvar , lgcvar ) as "0" enddef

pterm2* ( " , " , " )

Index 295 of page check

lgcdef lgcname of pterm2* ( lgcvar , lgcvar , lgcvar ) as "pterm2* ( ""! , ""! , ""! )" enddef

define value of pterm2* ( t , s , c ) as norm [t is val : [s is val : [c is val : if t atom then true else [pterm2 ( t head , s , c ) :: pterm2* ( t tail , s , c )]]]] end define

lgcdef lgccharge of pterm2* ( lgcvar , lgcvar , lgcvar ) as "0" enddef

inst ( " , " , " )

Index 296 of page check

lgcdef lgcname of inst ( lgcvar , lgcvar , lgcvar ) as "inst ( ""! , ""! , ""! )" enddef

define value of inst ( t , d , a ) as norm [t is val : [d is val : [a is val : if .not. [t r= quote unifresh ( true , true ) end quote] then [t ref :: [t idx :: [d debug]]] :: inst* ( t tail , d , a ) else LET a [[ t second idx ]] BE [asterisk IN LET asterisk BE [u IN if u != true then inst ( u , d , a ) else error ( d , diag ( "Incomplete unification. Uninstantiated variable:" ) disp ( t ) end diagnose )]]]]] end define

lgcdef lgccharge of inst ( lgcvar , lgcvar , lgcvar ) as "0" enddef

inst* ( " , " , " )

Index 297 of page check

lgcdef lgcname of inst* ( lgcvar , lgcvar , lgcvar ) as "inst* ( ""! , ""! , ""! )" enddef

define value of inst* ( t , d , a ) as norm [t is val : [d is val : [a is val : if t atom then true else [inst ( t head , d , a ) :: inst* ( t tail , d , a )]]]] end define

lgcdef lgccharge of inst* ( lgcvar , lgcvar , lgcvar ) as "0" enddef

occur ( " , " , " )

Index 298 of page check

lgcdef lgcname of occur ( lgcvar , lgcvar , lgcvar ) as "occur ( ""! , ""! , ""! )" enddef

define value of occur ( t , u , s ) as norm [t is val : [u is val : [s is val : if u r= quote unifresh ( true , true ) end quote then [t t= u] .or. occur ( t , s [[ u second idx ]] , s ) else occur* ( t , u tail , s )]]] end define

lgcdef lgccharge of occur ( lgcvar , lgcvar , lgcvar ) as "0" enddef

occur* ( " , " , " )

Index 299 of page check

lgcdef lgcname of occur* ( lgcvar , lgcvar , lgcvar ) as "occur* ( ""! , ""! , ""! )" enddef

define value of occur* ( t , u , s ) as norm [t is val : [u is val : [s is val : if u atom then false else [occur ( t , u head , s ) .or. occur* ( t , u tail , s )]]]] end define

lgcdef lgccharge of occur* ( lgcvar , lgcvar , lgcvar ) as "0" enddef

unify ( " , " , " )

Index 300 of page check

lgcdef lgcname of unify ( lgcvar , lgcvar , lgcvar ) as "unify ( ""! , ""! , ""! )" enddef

define value of unify ( t , u , s ) as norm [t is val : [u is val : [s is val : if t r= quote unifresh ( true , true ) end quote then unify2 ( t , u , s ) else if u r= quote unifresh ( true , true ) end quote then unify2 ( u , t , s ) else if t r= u then unify* ( t tail , u tail , s ) else error ( t , diag ( "Unable to unify" ) disp ( t ) diag ( "with" ) disp ( u ) end diagnose )]]] end define

lgcdef lgccharge of unify ( lgcvar , lgcvar , lgcvar ) as "0" enddef

unify* ( " , " , " )

Index 301 of page check

lgcdef lgcname of unify* ( lgcvar , lgcvar , lgcvar ) as "unify* ( ""! , ""! , ""! )" enddef

define value of unify* ( t , u , s ) as norm [t is val : [u is val : [s is val : if t atom then s else unify* ( t tail , u tail , unify ( t head , u head , s ) )]]] end define

lgcdef lgccharge of unify* ( lgcvar , lgcvar , lgcvar ) as "0" enddef

unify2 ( " , " , " )

Index 302 of page check

lgcdef lgcname of unify2 ( lgcvar , lgcvar , lgcvar ) as "unify2 ( ""! , ""! , ""! )" enddef

define value of unify2 ( t , u , s ) as norm [t is val : [u is val : [s is val : if t t= u then s else LET s [[ t second idx ]] BE [asterisk IN LET asterisk BE [t prime IN if t prime != true then unify ( t prime , u , s ) else if occur ( t , u , s ) then exception else [s [[ t second idx -> u ]]]]]]]] end define

lgcdef lgccharge of unify2 ( lgcvar , lgcvar , lgcvar ) as "0" enddef

taceval ( " , " , " )

Index 303 of page check

lgcdef lgcname of taceval ( lgcvar , lgcvar , lgcvar ) as "taceval ( ""! , ""! , ""! )" enddef

define value of taceval ( t , s , c ) as norm [t is val : [s is val : [c is val : LET t tactic-rhs ( c ) BE [asterisk IN LET asterisk BE [d IN if .not. d then [eval ( d , true , c ) apply [[t :: [s :: [c :: <<>>]]] maptag]] untag else LET lookup ( t , s [[ hook-pre ]] , true ) 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 [r 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 [a IN LET asterisk prime prime head BE [asterisk IN LET asterisk prime prime tail BE [asterisk prime prime IN if .not. a then s [[ hook-res -> r ]] [[ hook-arg -> a ]] else error ( t , diag ( "Unknown tactic operator in root of argumentation:" ) disp ( t ) end diagnose )]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of taceval ( lgcvar , lgcvar , lgcvar ) as "0" enddef

taceval1 ( " , " , " )

Index 304 of page check

lgcdef lgcname of taceval1 ( lgcvar , lgcvar , lgcvar ) as "taceval1 ( ""! , ""! , ""! )" enddef

define value of taceval1 ( t , p , c ) as norm [t is val : [p is val : [c is val : LET t tactic-rhs ( c ) BE [asterisk IN LET asterisk BE [d IN LET make-root ( t , quote t unquote infer [p unquote] end quote ) :: [t :: [p :: true]] BE [asterisk IN LET asterisk BE [t IN if d then taceval ( t , tacstate0 , c ) else [[eval ( d , true , c ) apply [[t :: [tacstate0 :: [c :: <<>>]]] maptag]] untag]]]]]]]] end define

lgcdef lgccharge of taceval1 ( lgcvar , lgcvar , lgcvar ) as "0" enddef

tacstate0

Index 305 of page check

lgcdef lgcname of tacstate0 as "tacstate0" enddef

define value of tacstate0 as norm [true [[ hook-unitac -> unitac0 ]]] end define

lgcdef lgccharge of tacstate0 as "0" enddef

unitac0

Index 306 of page check

lgcdef lgcname of unitac0 as "unitac0" enddef

define value of unitac0 as norm [true [[ hook-lemma -> quote \ u . unitac-lemma-std ( u ) end quote ]] [[ hook-rule -> quote \ u . unitac-rule-std ( u ) end quote ]] [[ hook-conclude -> quote \ u . unitac-conclude-std ( u ) end quote ]]] end define

lgcdef lgccharge of unitac0 as "0" enddef

tactic-push ( " , " , " )

Index 307 of page check

lgcdef lgcname of tactic-push ( lgcvar , lgcvar , lgcvar ) as "tactic-push ( ""! , ""! , ""! )" enddef

define value of tactic-push ( n , v , s ) as norm [n is val : [v is val : [s is val : [s [[ n -> v :: [s [[ n ]]] ]]]]]] end define

lgcdef lgccharge of tactic-push ( lgcvar , lgcvar , lgcvar ) as "0" enddef

tactic-pop ( " , " )

Index 308 of page check

lgcdef lgcname of tactic-pop ( lgcvar , lgcvar ) as "tactic-pop ( ""! , ""! )" enddef

define value of tactic-pop ( n , s ) as norm [n is val : [s is val : [s [[ n -> s [[ n ]] tail ]]]]] end define

lgcdef lgccharge of tactic-pop ( lgcvar , lgcvar ) as "0" enddef

tactic-Init ( " )

Index 309 of page check

lgcdef lgcname of tactic-Init ( lgcvar ) as "tactic-Init ( ""! )" enddef

define value of tactic-Init ( u ) as norm [u is val : LET u 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 [t 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 [s 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 [c IN LET asterisk prime prime prime head BE [asterisk IN LET asterisk prime prime prime tail BE [asterisk prime prime prime IN LET t 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 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 [x IN LET asterisk prime prime head BE [asterisk IN LET asterisk prime prime tail BE [asterisk prime prime IN [s [[ hook-arg -> t ]] [[ hook-res -> x ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of tactic-Init ( lgcvar ) as "0" enddef

tactic-Ponens ( " )

Index 310 of page check

lgcdef lgcname of tactic-Ponens ( lgcvar ) as "tactic-Ponens ( ""! )" enddef

define value of tactic-Ponens ( u ) as norm [u is val : LET u 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 [t 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 [s 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 [c IN LET asterisk prime prime prime head BE [asterisk IN LET asterisk prime prime prime tail BE [asterisk prime prime prime IN LET t 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 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 [x IN LET asterisk prime prime head BE [asterisk IN LET asterisk prime prime tail BE [asterisk prime prime IN LET taceval ( x , s , c ) BE [asterisk IN LET asterisk BE [s IN LET make-root ( t , quote s [[ hook-arg ]] unquote Ponens end quote ) :: [s [[ hook-arg ]] :: true] BE [asterisk IN LET asterisk BE [a IN LET s [[ hook-res ]] BE [asterisk IN LET asterisk BE [r IN if mismatch ( quote x infer y end quote , r , c ) then error ( t , diag ( "Ponens tactic used on non-inference:" ) disp ( r ) end diagnose ) else [s [[ hook-arg -> a ]] [[ hook-res -> r second ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of tactic-Ponens ( lgcvar ) as "0" enddef

tactic-Probans ( " )

Index 311 of page check

lgcdef lgcname of tactic-Probans ( lgcvar ) as "tactic-Probans ( ""! )" enddef

define value of tactic-Probans ( u ) as norm [u is val : LET u 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 [t 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 [s 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 [c IN LET asterisk prime prime prime head BE [asterisk IN LET asterisk prime prime prime tail BE [asterisk prime prime prime IN LET t 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 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 [x IN LET asterisk prime prime head BE [asterisk IN LET asterisk prime prime tail BE [asterisk prime prime IN LET taceval ( x , s , c ) BE [asterisk IN LET asterisk BE [s IN LET make-root ( t , quote s [[ hook-arg ]] unquote Probans end quote ) :: [s [[ hook-arg ]] :: true] BE [asterisk IN LET asterisk BE [a IN LET s [[ hook-res ]] BE [asterisk IN LET asterisk BE [r IN if mismatch ( quote x endorse y end quote , r , c ) then error ( t , diag ( "Probans tactic used on non-endorsement:" ) disp ( r ) end diagnose ) else [s [[ hook-arg -> a ]] [[ hook-res -> r second ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of tactic-Probans ( lgcvar ) as "0" enddef

tactic-Verify ( " )

Index 312 of page check

lgcdef lgcname of tactic-Verify ( lgcvar ) as "tactic-Verify ( ""! )" enddef

define value of tactic-Verify ( u ) as norm [u is val : LET u 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 [t 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 [s 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 [c IN LET asterisk prime prime prime head BE [asterisk IN LET asterisk prime prime prime tail BE [asterisk prime prime prime IN LET t 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 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 [x IN LET asterisk prime prime head BE [asterisk IN LET asterisk prime prime tail BE [asterisk prime prime IN LET taceval ( x , s , c ) BE [asterisk IN LET asterisk BE [s IN LET make-root ( t , quote s [[ hook-arg ]] unquote Verify end quote ) :: [s [[ hook-arg ]] :: true] BE [asterisk IN LET asterisk BE [a IN LET s [[ hook-res ]] BE [asterisk IN LET asterisk BE [r IN if mismatch ( quote x endorse y end quote , r , c ) then error ( t , diag ( "Verify tactic used on non-endorsement:" ) disp ( r ) end diagnose ) else [s [[ hook-arg -> a ]] [[ hook-res -> r second ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of tactic-Verify ( lgcvar ) as "0" enddef

tactic-Curry ( " )

Index 313 of page check

lgcdef lgcname of tactic-Curry ( lgcvar ) as "tactic-Curry ( ""! )" enddef

define value of tactic-Curry ( u ) as norm [u is val : LET u 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 [t 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 [s 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 [c IN LET asterisk prime prime prime head BE [asterisk IN LET asterisk prime prime prime tail BE [asterisk prime prime prime IN LET t 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 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 [x IN LET asterisk prime prime head BE [asterisk IN LET asterisk prime prime tail BE [asterisk prime prime IN LET taceval ( x , s , c ) BE [asterisk IN LET asterisk BE [s IN LET make-root ( t , quote s [[ hook-arg ]] unquote Curry end quote ) :: [s [[ hook-arg ]] :: true] BE [asterisk IN LET asterisk BE [a IN LET s [[ hook-res ]] BE [asterisk IN LET asterisk BE [r IN if mismatch ( quote [x oplus y] infer z end quote , r , c ) then error ( t , diag ( "Curry tactic used on unfit argument:" ) disp ( r ) end diagnose ) else LET make-root ( r , quote r first first unquote infer [r first second unquote infer [r second unquote]] end quote ) :: [r first first :: [[make-root ( r , quote r first second unquote infer [r second unquote] end quote ) :: [r first second :: [r second :: true]]] :: true]] BE [asterisk IN LET asterisk BE [r IN [s [[ hook-arg -> a ]] [[ hook-res -> r ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of tactic-Curry ( lgcvar ) as "0" enddef

tactic-Uncurry ( " )

Index 314 of page check

lgcdef lgcname of tactic-Uncurry ( lgcvar ) as "tactic-Uncurry ( ""! )" enddef

define value of tactic-Uncurry ( u ) as norm [u is val : LET u 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 [t 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 [s 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 [c IN LET asterisk prime prime prime head BE [asterisk IN LET asterisk prime prime prime tail BE [asterisk prime prime prime IN LET t 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 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 [x IN LET asterisk prime prime head BE [asterisk IN LET asterisk prime prime tail BE [asterisk prime prime IN LET taceval ( x , s , c ) BE [asterisk IN LET asterisk BE [s IN LET make-root ( t , quote s [[ hook-arg ]] unquote Uncurry end quote ) :: [s [[ hook-arg ]] :: true] BE [asterisk IN LET asterisk BE [a IN LET s [[ hook-res ]] BE [asterisk IN LET asterisk BE [r IN if mismatch ( quote x infer [y infer z] end quote , r , c ) then error ( t , diag ( "Uncurry tactic used on unfit argument:" ) disp ( r ) end diagnose ) else LET make-root ( r , quote [r first unquote oplus [r second first unquote]] infer [r second second unquote] end quote ) :: [[make-root ( r , quote r first unquote oplus [r second first unquote] end quote ) :: [r first :: [r second first :: true]]] :: [r second second :: true]] BE [asterisk IN LET asterisk BE [r IN [s [[ hook-arg -> a ]] [[ hook-res -> r ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of tactic-Uncurry ( lgcvar ) as "0" enddef

tactic-Deref ( " )

Index 315 of page check

lgcdef lgcname of tactic-Deref ( lgcvar ) as "tactic-Deref ( ""! )" enddef

define value of tactic-Deref ( u ) as norm [u is val : LET u 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 [t 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 [s 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 [c IN LET asterisk prime prime prime head BE [asterisk IN LET asterisk prime prime prime tail BE [asterisk prime prime prime IN LET t 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 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 [x IN LET asterisk prime prime head BE [asterisk IN LET asterisk prime prime tail BE [asterisk prime prime IN LET taceval ( x , s , c ) BE [asterisk IN LET asterisk BE [s IN LET make-root ( t , quote s [[ hook-arg ]] unquote Deref end quote ) :: [s [[ hook-arg ]] :: true] BE [asterisk IN LET asterisk BE [a IN LET s [[ hook-res ]] BE [asterisk IN LET asterisk BE [r IN LET r stmt-rhs ( c ) BE [asterisk IN LET asterisk BE [r prime IN if r prime = true then error ( t , diag ( "Deref tactic used on undefined statement:" ) disp ( r ) end diagnose ) else [s [[ hook-arg -> a ]] [[ hook-res -> r prime ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of tactic-Deref ( lgcvar ) as "0" enddef

tactic-at ( " )

Index 316 of page check

lgcdef lgcname of tactic-at ( lgcvar ) as "tactic-at ( ""! )" enddef

define value of tactic-at ( u ) as norm [u is val : LET u 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 [t 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 [s 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 [c IN LET asterisk prime prime prime head BE [asterisk IN LET asterisk prime prime prime tail BE [asterisk prime prime prime IN tactic-at1 ( t , s , true , c )]]]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of tactic-at ( lgcvar ) as "0" enddef

tactic-at1 ( " , " , " , " )

Index 317 of page check

lgcdef lgcname of tactic-at1 ( lgcvar , lgcvar , lgcvar , lgcvar ) as "tactic-at1 ( ""! , ""! , ""! , ""! )" enddef

define value of tactic-at1 ( t , s , v , c ) as norm [t is val : [s is val : [v is val : [c is val : if mismatch ( quote x at y end quote , t , c ) then tactic-at2 ( t , taceval ( t , s , c ) , v , true , c ) else LET t 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 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 [x 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 [y IN LET asterisk prime prime prime head BE [asterisk IN LET asterisk prime prime prime tail BE [asterisk prime prime prime IN LET tactic-push ( hook-parm , y , s ) BE [asterisk IN LET asterisk BE [s IN tactic-at1 ( x , s , y :: v , c )]]]]]]]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of tactic-at1 ( lgcvar , lgcvar , lgcvar , lgcvar ) as "0" enddef

tactic-at2 ( " , " , " , " , " )

Index 318 of page check

lgcdef lgcname of tactic-at2 ( lgcvar , lgcvar , lgcvar , lgcvar , lgcvar ) as "tactic-at2 ( ""! , ""! , ""! , ""! , ""! )" enddef

define value of tactic-at2 ( t , s , v , s prime , c ) as norm [t is val : [s is val : [v is val : [s prime is val : [c is val : if v then s [[ hook-res -> metasubst ( s [[ hook-res ]] , s prime , c ) ]] else LET v 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 [y IN LET asterisk prime head BE [asterisk IN LET asterisk prime tail BE [asterisk prime IN LET asterisk BE [v IN LET make-root ( t , quote s [[ hook-arg ]] unquote at [y unquote] end quote ) :: [s [[ hook-arg ]] :: [y :: true]] BE [asterisk IN LET asterisk BE [a IN LET s [[ hook-res ]] BE [asterisk IN LET asterisk BE [r IN if mismatch ( quote All x : y end quote , r , c ) then error ( t , diag ( "At tactic used on non-quantifier:" ) disp ( r ) end diagnose ) else LET s [[ hook-arg -> a ]] [[ hook-res -> r second ]] BE [asterisk IN LET asterisk BE [s IN tactic-at2 ( t , s , v , [r first :: y] :: [s prime] , c )]]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of tactic-at2 ( lgcvar , lgcvar , lgcvar , lgcvar , lgcvar ) as "0" enddef

tactic-infer ( " )

Index 319 of page check

lgcdef lgcname of tactic-infer ( lgcvar ) as "tactic-infer ( ""! )" enddef

define value of tactic-infer ( u ) as norm [u is val : LET u 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 [t 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 [s 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 [c IN LET asterisk prime prime prime head BE [asterisk IN LET asterisk prime prime prime tail BE [asterisk prime prime prime IN LET t 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 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 [x 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 [y IN LET asterisk prime prime prime head BE [asterisk IN LET asterisk prime prime prime tail BE [asterisk prime prime prime IN LET tactic-push ( hook-pre , true :: [x :: [[make-root ( x , quote x unquote Init end quote ) :: [x :: true]] :: <<>>]] , s ) BE [asterisk IN LET asterisk BE [s IN LET taceval ( y , s , c ) BE [asterisk IN LET asterisk BE [s IN LET make-root ( t , quote x unquote infer [s [[ hook-arg ]] unquote] end quote ) :: [x :: [s [[ hook-arg ]] :: true]] BE [asterisk IN LET asterisk BE [a IN LET make-root ( t , quote x unquote infer [s [[ hook-res ]] unquote] end quote ) :: [x :: [s [[ hook-res ]] :: true]] BE [asterisk IN LET asterisk BE [r IN [s [[ hook-arg -> a ]] [[ hook-res -> r ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of tactic-infer ( lgcvar ) as "0" enddef

tactic-endorse ( " )

Index 320 of page check

lgcdef lgcname of tactic-endorse ( lgcvar ) as "tactic-endorse ( ""! )" enddef

define value of tactic-endorse ( u ) as norm [u is val : LET u 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 [t 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 [s 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 [c IN LET asterisk prime prime prime head BE [asterisk IN LET asterisk prime prime prime tail BE [asterisk prime prime prime IN LET t 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 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 [x 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 [y IN LET asterisk prime prime prime head BE [asterisk IN LET asterisk prime prime prime tail BE [asterisk prime prime prime IN LET taceval ( y , tactic-push ( hook-cond , true :: [x :: <<>>] , s ) , c ) BE [asterisk IN LET asterisk BE [s IN LET make-root ( t , quote x unquote endorse [s [[ hook-arg ]] unquote] end quote ) :: [x :: [s [[ hook-arg ]] :: true]] BE [asterisk IN LET asterisk BE [a IN LET make-root ( t , quote x unquote endorse [s [[ hook-res ]] unquote] end quote ) :: [x :: [s [[ hook-res ]] :: true]] BE [asterisk IN LET asterisk BE [r IN [s [[ hook-arg -> a ]] [[ hook-res -> r ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of tactic-endorse ( lgcvar ) as "0" enddef

tactic-ie ( " )

Index 321 of page check

lgcdef lgcname of tactic-ie ( lgcvar ) as "tactic-ie ( ""! )" enddef

define value of tactic-ie ( u ) as norm [u is val : LET u 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 [t 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 [s 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 [c IN LET asterisk prime prime prime head BE [asterisk IN LET asterisk prime prime prime tail BE [asterisk prime prime prime IN LET t 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 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 [x 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 [y IN LET asterisk prime prime prime head BE [asterisk IN LET asterisk prime prime prime tail BE [asterisk prime prime prime IN LET taceval ( x , s , c ) BE [asterisk IN LET asterisk BE [s IN LET make-root ( t , quote s [[ hook-arg ]] unquote id est [y unquote] end quote ) :: [s [[ hook-arg ]] :: [y :: true]] BE [asterisk IN LET asterisk BE [a IN [s [[ hook-arg -> a ]] [[ hook-res -> y ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of tactic-ie ( lgcvar ) as "0" enddef

tactic-all ( " )

Index 322 of page check

lgcdef lgcname of tactic-all ( lgcvar ) as "tactic-all ( ""! )" enddef

define value of tactic-all ( u ) as norm [u is val : LET u 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 [t 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 [s 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 [c IN LET asterisk prime prime prime head BE [asterisk IN LET asterisk prime prime prime tail BE [asterisk prime prime prime IN LET t 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 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 [x 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 [y IN LET asterisk prime prime prime head BE [asterisk IN LET asterisk prime prime prime tail BE [asterisk prime prime prime IN LET taceval ( y , tactic-pop ( hook-parm , s ) , c ) BE [asterisk IN LET asterisk BE [s IN LET make-root ( t , quote All x unquote : [s [[ hook-arg ]] unquote] end quote ) :: [x :: [s [[ hook-arg ]] :: true]] BE [asterisk IN LET asterisk BE [a IN LET make-root ( t , quote All x unquote : [s [[ hook-res ]] unquote] end quote ) :: [x :: [s [[ hook-res ]] :: true]] BE [asterisk IN LET asterisk BE [r IN [s [[ hook-arg -> a ]] [[ hook-res -> r ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of tactic-all ( lgcvar ) as "0" enddef

tactic-cut ( " )

Index 323 of page check

lgcdef lgcname of tactic-cut ( lgcvar ) as "tactic-cut ( ""! )" enddef

define value of tactic-cut ( u ) as norm [u is val : LET u 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 [t 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 [s 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 [c IN LET asterisk prime prime prime head BE [asterisk IN LET asterisk prime prime prime tail BE [asterisk prime prime prime IN LET t 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 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 [x 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 [y IN LET asterisk prime prime prime head BE [asterisk IN LET asterisk prime prime prime tail BE [asterisk prime prime prime IN LET taceval ( x , s , c ) BE [asterisk IN LET asterisk BE [s prime IN LET s prime [[ hook-arg ]] BE [asterisk IN LET asterisk BE [a IN LET s prime [[ hook-res ]] BE [asterisk IN LET asterisk BE [r IN LET tactic-push ( hook-pre , true :: [r :: [[make-root ( r , quote r unquote Init end quote ) :: [r :: true]] :: <<>>]] , s ) BE [asterisk IN LET asterisk BE [s IN LET taceval ( y , s , c ) BE [asterisk IN LET asterisk BE [s IN LET make-root ( t , quote a unquote ;; [s [[ hook-arg ]] unquote] end quote ) :: [a :: [s [[ hook-arg ]] :: true]] BE [asterisk IN LET asterisk BE [a IN [s [[ hook-arg -> a ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of tactic-cut ( lgcvar ) as "0" enddef

tactic-cut1 ( " , " , " )

Index 324 of page check

lgcdef lgcname of tactic-cut1 ( lgcvar , lgcvar , lgcvar ) as "tactic-cut1 ( ""! , ""! , ""! )" enddef

lgcdef lgccharge of tactic-cut1 ( lgcvar , lgcvar , lgcvar ) as "0" enddef

hook-arg

Index 325 of page check

lgcdef lgcname of hook-arg as "hook-arg" enddef

define value of hook-arg as norm "arg" end define

lgcdef lgccharge of hook-arg as "0" enddef

hook-res

Index 326 of page check

lgcdef lgcname of hook-res as "hook-res" enddef

define value of hook-res as norm "con" end define

lgcdef lgccharge of hook-res as "0" enddef

hook-idx

Index 327 of page check

lgcdef lgcname of hook-idx as "hook-idx" enddef

define value of hook-idx as norm "idx" end define

lgcdef lgccharge of hook-idx as "0" enddef

hook-uni

Index 328 of page check

lgcdef lgcname of hook-uni as "hook-uni" enddef

define value of hook-uni as norm "uni" end define

lgcdef lgccharge of hook-uni as "0" enddef

hook-pre

Index 329 of page check

lgcdef lgcname of hook-pre as "hook-pre" enddef

define value of hook-pre as norm "pre" end define

lgcdef lgccharge of hook-pre as "0" enddef

hook-cond

Index 330 of page check

lgcdef lgcname of hook-cond as "hook-cond" enddef

define value of hook-cond as norm "cond" end define

lgcdef lgccharge of hook-cond as "0" enddef

hook-parm

Index 331 of page check

lgcdef lgcname of hook-parm as "hook-parm" enddef

define value of hook-parm as norm "parm" end define

lgcdef lgccharge of hook-parm as "0" enddef

hook-unitac

Index 332 of page check

lgcdef lgcname of hook-unitac as "hook-unitac" enddef

define value of hook-unitac as norm "unitac" end define

lgcdef lgccharge of hook-unitac as "0" enddef

hook-rule

Index 333 of page check

lgcdef lgcname of hook-rule as "hook-rule" enddef

define value of hook-rule as norm "rule" end define

lgcdef lgccharge of hook-rule as "0" enddef

hook-lemma

Index 334 of page check

lgcdef lgcname of hook-lemma as "hook-lemma" enddef

define value of hook-lemma as norm "lemma" end define

lgcdef lgccharge of hook-lemma as "0" enddef

hook-conclude

Index 335 of page check

lgcdef lgcname of hook-conclude as "hook-conclude" enddef

define value of hook-conclude as norm "conclude" end define

lgcdef lgccharge of hook-conclude as "0" enddef

unitac ( " )

Index 336 of page check

lgcdef lgcname of unitac ( lgcvar ) as "unitac ( ""! )" enddef

define value of unitac ( x ) as norm [x is val : LET x 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 [t 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 [s 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 [c IN LET asterisk prime prime prime head BE [asterisk IN LET asterisk prime prime prime tail BE [asterisk prime prime prime IN LET unitac1 ( t , s , 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 [v IN if .not. e then v else if .not. v then error ( t , LocateProofLine ( t , c ) v ) else error ( t , LocateProofLine ( t , c ) diag ( "During unification: Uncaught exception" ) end diagnose )]]]]]]]]]]]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of unitac ( lgcvar ) as "0" enddef

unitac1 ( " , " , " )

Index 337 of page check

lgcdef lgcname of unitac1 ( lgcvar , lgcvar , lgcvar ) as "unitac1 ( ""! , ""! , ""! )" enddef

define value of unitac1 ( t , s , c ) as norm [t is val : [s is val : [c is val : LET s [[ hook-idx -> 1 ]] [[ hook-uni -> true ]] BE [asterisk IN LET asterisk BE [s IN LET unieval ( t , s , c ) BE [asterisk IN LET asterisk BE [s IN LET inst ( s [[ hook-arg ]] , t , s [[ hook-uni ]] ) BE [asterisk IN LET asterisk BE [t IN LET taceval ( t , s , 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 [v IN if .not. e then v else if .not. v then v raise else error ( t , diag ( "Post unification tactic evalutation: Uncaught exception" ) end diagnose )]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of unitac1 ( lgcvar , lgcvar , lgcvar ) as "0" enddef

unieval ( " , " , " )

Index 338 of page check

lgcdef lgcname of unieval ( lgcvar , lgcvar , lgcvar ) as "unieval ( ""! , ""! , ""! )" enddef

define value of unieval ( t , s , c ) as norm [t is val : [s is val : [c is val : LET t unitac-rhs ( c ) BE [asterisk IN LET asterisk BE [d IN if d then LET lookup ( t , s [[ hook-pre ]] , true ) 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 [r 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 [a IN LET asterisk prime prime head BE [asterisk IN LET asterisk prime prime tail BE [asterisk prime prime IN if .not. a then s [[ hook-arg -> a ]] [[ hook-res -> r ]] else error ( t , diag ( "Unknown unitac operator in root of argumentation:" ) disp ( t ) end diagnose )]]]]]]]]]]]]] else LET [eval ( d , true , c ) apply [[t :: [s :: [c :: <<>>]]] maptag]] untag 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 .not. e then s else if .not. s then s raise else error ( t , diag ( "Exception raised by the unitac aspect of:" ) disp ( t ) end diagnose )]]]]]]]]]]]]] end define

lgcdef lgccharge of unieval ( lgcvar , lgcvar , lgcvar ) as "0" enddef

unitac-Init ( " )

Index 339 of page check

lgcdef lgcname of unitac-Init ( lgcvar ) as "unitac-Init ( ""! )" enddef

define value of unitac-Init ( u ) as norm [u is val : LET u 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 [t 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 [s 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 [c IN LET asterisk prime prime prime head BE [asterisk IN LET asterisk prime prime prime tail BE [asterisk prime prime prime IN [s [[ hook-res -> t first ]] [[ hook-arg -> t ]]]]]]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of unitac-Init ( lgcvar ) as "0" enddef

unitac-Conclude ( " )

Index 340 of page check

lgcdef lgcname of unitac-Conclude ( lgcvar ) as "unitac-Conclude ( ""! )" enddef

define value of unitac-Conclude ( u ) as norm [u is val : LET u 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 [t 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 [s 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 [c IN LET asterisk prime prime prime head BE [asterisk IN LET asterisk prime prime prime tail BE [asterisk prime prime prime IN LET unieval ( t first , s , c ) BE [asterisk IN LET asterisk BE [s IN unitac-adapt ( true , s , c )]]]]]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of unitac-Conclude ( lgcvar ) as "0" enddef

unitac-conclude ( " )

Index 341 of page check

lgcdef lgcname of unitac-conclude ( lgcvar ) as "unitac-conclude ( ""! )" enddef

define value of unitac-conclude ( u ) as norm [u is val : LET u 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 [t 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 [s 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 [c IN LET asterisk prime prime prime head BE [asterisk IN LET asterisk prime prime prime tail BE [asterisk prime prime prime IN LET s [[ hook-unitac ]] [[ hook-conclude ]] BE [asterisk IN LET asterisk BE [d IN [[eval ( d , true , c ) apply [[t :: [s :: [c :: <<>>]]] maptag]] untag]]]]]]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of unitac-conclude ( lgcvar ) as "0" enddef

unitac-conclude-std ( " )

Index 342 of page check

lgcdef lgcname of unitac-conclude-std ( lgcvar ) as "unitac-conclude-std ( ""! )" enddef

define value of unitac-conclude-std ( u ) as norm [u is val : LET u 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 [t 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 [s 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 [c IN LET asterisk prime prime prime head BE [asterisk IN LET asterisk prime prime prime tail BE [asterisk prime prime prime IN LET unieval ( t first , s , c ) BE [asterisk IN LET asterisk BE [s IN LET unitac-adapt ( t second metadef ( c ) , s , c ) BE [asterisk IN LET asterisk BE [s IN LET unify ( s [[ hook-res ]] , t second , s [[ hook-uni ]] ) BE [asterisk IN LET asterisk BE [u IN [s [[ hook-uni -> u ]] [[ hook-res -> t second ]]]]]]]]]]]]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of unitac-conclude-std ( lgcvar ) as "0" enddef

unitac-Ponens ( " )

Index 343 of page check

lgcdef lgcname of unitac-Ponens ( lgcvar ) as "unitac-Ponens ( ""! )" enddef

define value of unitac-Ponens ( u ) as norm [u is val : LET u 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 [t 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 [s 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 [c IN LET asterisk prime prime prime head BE [asterisk IN LET asterisk prime prime prime tail BE [asterisk prime prime prime IN LET unieval ( t first , s , c ) BE [asterisk IN LET asterisk BE [s IN LET unitac-adapt ( "infer" , s , c ) BE [asterisk IN LET asterisk BE [s IN LET s [[ hook-arg ]] BE [asterisk IN LET asterisk BE [a IN LET s [[ hook-res ]] BE [asterisk IN LET asterisk BE [r IN [s [[ hook-arg -> make-root ( t , quote a unquote Ponens end quote ) :: [a :: true] ]] [[ hook-res -> r second ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of unitac-Ponens ( lgcvar ) as "0" enddef

unitac-ponens ( " )

Index 344 of page check

lgcdef lgcname of unitac-ponens ( lgcvar ) as "unitac-ponens ( ""! )" enddef

define value of unitac-ponens ( u ) as norm [u is val : LET u 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 [t 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 [s 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 [c IN LET asterisk prime prime prime head BE [asterisk IN LET asterisk prime prime prime tail BE [asterisk prime prime prime IN LET unieval ( t first , s , c ) BE [asterisk IN LET asterisk BE [s IN LET unitac-adapt ( "infer" , s , c ) BE [asterisk IN LET asterisk BE [s IN LET s [[ hook-arg ]] BE [asterisk IN LET asterisk BE [a IN LET s [[ hook-res ]] BE [asterisk IN LET asterisk BE [r IN LET unieval ( t second , s , c ) BE [asterisk IN LET asterisk BE [s IN LET unitac-adapt ( r first metadef ( c ) , s , c ) BE [asterisk IN LET asterisk BE [s IN LET s [[ hook-arg ]] BE [asterisk IN LET asterisk BE [a prime IN LET s [[ hook-res ]] BE [asterisk IN LET asterisk BE [r prime IN LET s [[ hook-uni ]] BE [asterisk IN LET asterisk BE [u IN LET unify ( r first , r prime , u ) BE [asterisk IN LET asterisk BE [u IN LET s [[ hook-uni -> u ]] BE [asterisk IN LET asterisk BE [s IN [s [[ hook-arg -> make-root ( t , quote a prime unquote ;; [a unquote Ponens] end quote ) :: [a prime :: [[make-root ( t , quote a unquote Ponens end quote ) :: [a :: true]] :: true]] ]] [[ hook-res -> r second ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of unitac-ponens ( lgcvar ) as "0" enddef

unitac-Probans ( " )

Index 345 of page check

lgcdef lgcname of unitac-Probans ( lgcvar ) as "unitac-Probans ( ""! )" enddef

define value of unitac-Probans ( u ) as norm [u is val : LET u 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 [t 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 [s 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 [c IN LET asterisk prime prime prime head BE [asterisk IN LET asterisk prime prime prime tail BE [asterisk prime prime prime IN LET unieval ( t first , s , c ) BE [asterisk IN LET asterisk BE [s IN LET unitac-adapt ( "endorse" , s , c ) BE [asterisk IN LET asterisk BE [s IN LET s [[ hook-arg ]] BE [asterisk IN LET asterisk BE [a IN LET s [[ hook-res ]] BE [asterisk IN LET asterisk BE [r IN [s [[ hook-arg -> make-root ( t , quote a unquote Probans end quote ) :: [a :: true] ]] [[ hook-res -> r second ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of unitac-Probans ( lgcvar ) as "0" enddef

unitac-probans ( " )

Index 346 of page check

lgcdef lgcname of unitac-probans ( lgcvar ) as "unitac-probans ( ""! )" enddef

define value of unitac-probans ( u ) as norm [u is val : LET u 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 [t 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 [s 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 [c IN LET asterisk prime prime prime head BE [asterisk IN LET asterisk prime prime prime tail BE [asterisk prime prime prime IN LET unieval ( t first , s , c ) BE [asterisk IN LET asterisk BE [s IN LET unitac-adapt ( "endorse" , s , c ) BE [asterisk IN LET asterisk BE [s IN LET s [[ hook-arg ]] BE [asterisk IN LET asterisk BE [a IN LET s [[ hook-res ]] BE [asterisk IN LET asterisk BE [r IN LET s [[ hook-uni ]] BE [asterisk IN LET asterisk BE [u IN LET lookup ( t second , s [[ hook-cond ]] , t second :: <<>> ) 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 unify ( r first , p , u ) BE [asterisk IN LET asterisk BE [u IN LET s [[ hook-uni -> u ]] BE [asterisk IN LET asterisk BE [s IN [s [[ hook-arg -> make-root ( t , quote a unquote Probans end quote ) :: [a :: true] ]] [[ hook-res -> r second ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of unitac-probans ( lgcvar ) as "0" enddef

unitac-Verify ( " )

Index 347 of page check

lgcdef lgcname of unitac-Verify ( lgcvar ) as "unitac-Verify ( ""! )" enddef

define value of unitac-Verify ( u ) as norm [u is val : LET u 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 [t 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 [s 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 [c IN LET asterisk prime prime prime head BE [asterisk IN LET asterisk prime prime prime tail BE [asterisk prime prime prime IN LET unieval ( t first , s , c ) BE [asterisk IN LET asterisk BE [s IN LET unitac-adapt ( "endorse" , s , c ) BE [asterisk IN LET asterisk BE [s IN LET s [[ hook-arg ]] BE [asterisk IN LET asterisk BE [a IN LET s [[ hook-res ]] BE [asterisk IN LET asterisk BE [r IN [s [[ hook-arg -> make-root ( t , quote a unquote Verify end quote ) :: [a :: true] ]] [[ hook-res -> r second ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of unitac-Verify ( lgcvar ) as "0" enddef

unitac-verify ( " )

Index 348 of page check

lgcdef lgcname of unitac-verify ( lgcvar ) as "unitac-verify ( ""! )" enddef

define value of unitac-verify ( u ) as norm [u is val : LET u 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 [t 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 [s 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 [c IN LET asterisk prime prime prime head BE [asterisk IN LET asterisk prime prime prime tail BE [asterisk prime prime prime IN LET unieval ( t first , s , c ) BE [asterisk IN LET asterisk BE [s IN LET unitac-adapt ( "endorse" , s , c ) BE [asterisk IN LET asterisk BE [s IN LET s [[ hook-arg ]] BE [asterisk IN LET asterisk BE [a IN LET s [[ hook-res ]] BE [asterisk IN LET asterisk BE [r IN LET s [[ hook-uni ]] BE [asterisk IN LET asterisk BE [u IN LET unify ( r first , t second , u ) BE [asterisk IN LET asterisk BE [u IN LET s [[ hook-uni -> u ]] BE [asterisk IN LET asterisk BE [s IN [s [[ hook-arg -> make-root ( t , quote a unquote Verify end quote ) :: [a :: true] ]] [[ hook-res -> r second ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of unitac-verify ( lgcvar ) as "0" enddef

unitac-Curry ( " )

Index 349 of page check

lgcdef lgcname of unitac-Curry ( lgcvar ) as "unitac-Curry ( ""! )" enddef

define value of unitac-Curry ( u ) as norm [u is val : LET u 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 [t 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 [s 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 [c IN LET asterisk prime prime prime head BE [asterisk IN LET asterisk prime prime prime tail BE [asterisk prime prime prime IN LET unieval ( t first , s , c ) BE [asterisk IN LET asterisk BE [s IN LET unitac-adapt ( "infer" , s , c ) BE [asterisk IN LET asterisk BE [s IN LET s [[ hook-arg ]] BE [asterisk IN LET asterisk BE [a IN LET s [[ hook-res ]] BE [asterisk IN LET asterisk BE [r IN if .not. [r first r= quote x oplus y end quote] then error ( r , diag ( "Unsuited for currying:" ) disp ( r ) end diagnose ) else LET make-root ( r , quote r first first unquote infer [r first second unquote infer [r second unquote]] end quote ) :: [r first first :: [[make-root ( r , quote r first second unquote infer [r second unquote] end quote ) :: [r first second :: [r second :: true]]] :: true]] BE [asterisk IN LET asterisk BE [r IN [s [[ hook-arg -> make-root ( t , quote a unquote Curry end quote ) :: [a :: true] ]] [[ hook-res -> r ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of unitac-Curry ( lgcvar ) as "0" enddef

unitac-Uncurry ( " )

Index 350 of page check

lgcdef lgcname of unitac-Uncurry ( lgcvar ) as "unitac-Uncurry ( ""! )" enddef

define value of unitac-Uncurry ( u ) as norm [u is val : LET u 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 [t 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 [s 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 [c IN LET asterisk prime prime prime head BE [asterisk IN LET asterisk prime prime prime tail BE [asterisk prime prime prime IN LET unieval ( t first , s , c ) BE [asterisk IN LET asterisk BE [s IN LET unitac-adapt ( "infer" , s , c ) BE [asterisk IN LET asterisk BE [s IN LET s [[ hook-arg ]] BE [asterisk IN LET asterisk BE [a IN LET s [[ hook-res ]] BE [asterisk IN LET asterisk BE [r IN if .not. [r second r= quote x infer y end quote] then error ( r , diag ( "Unsuited for uncurrying:" ) disp ( r ) end diagnose ) else LET make-root ( r , quote [r first unquote oplus [r second first unquote]] infer [r second second unquote] end quote ) :: [[make-root ( r , quote r first unquote oplus [r second first unquote] end quote ) :: [r first :: [r second first :: true]]] :: [r second second :: true]] BE [asterisk IN LET asterisk BE [r IN [s [[ hook-arg -> make-root ( t , quote a unquote Uncurry end quote ) :: [a :: true] ]] [[ hook-res -> r ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of unitac-Uncurry ( lgcvar ) as "0" enddef

unitac-Deref ( " )

Index 351 of page check

lgcdef lgcname of unitac-Deref ( lgcvar ) as "unitac-Deref ( ""! )" enddef

define value of unitac-Deref ( u ) as norm [u is val : LET u 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 [t 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 [s 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 [c IN LET asterisk prime prime prime head BE [asterisk IN LET asterisk prime prime prime tail BE [asterisk prime prime prime IN LET unieval ( t first , s , c ) BE [asterisk IN LET asterisk BE [s IN LET unitac-adapt ( true , s , c ) BE [asterisk IN LET asterisk BE [s IN LET s [[ hook-res ]] BE [asterisk IN LET asterisk BE [r IN LET r stmt-rhs ( c ) BE [asterisk IN LET asterisk BE [l IN if l then s else LET s [[ hook-arg ]] BE [asterisk IN LET asterisk BE [a IN LET make-root ( t , quote a unquote Deref end quote ) :: [a :: true] BE [asterisk IN LET asterisk BE [a IN [s [[ hook-arg -> a ]] [[ hook-res -> l ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of unitac-Deref ( lgcvar ) as "0" enddef

unitac-idest ( " )

Index 352 of page check

lgcdef lgcname of unitac-idest ( lgcvar ) as "unitac-idest ( ""! )" enddef

define value of unitac-idest ( u ) as norm [u is val : LET u 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 [t 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 [s 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 [c IN LET asterisk prime prime prime head BE [asterisk IN LET asterisk prime prime prime tail BE [asterisk prime prime prime IN LET unieval ( t first , s , c ) BE [asterisk IN LET asterisk BE [s IN LET t second stmt-rhs ( c ) BE [asterisk IN LET asterisk BE [l IN LET unitac-adapt ( l metadef ( c ) , s , c ) BE [asterisk IN LET asterisk BE [s IN LET s [[ hook-res ]] BE [asterisk IN LET asterisk BE [r IN LET s [[ hook-uni ]] BE [asterisk IN LET asterisk BE [u IN LET unify ( r , l , u ) BE [asterisk IN LET asterisk BE [u IN LET s [[ hook-uni -> u ]] BE [asterisk IN LET asterisk BE [s IN LET s [[ hook-arg ]] BE [asterisk IN LET asterisk BE [a IN LET make-root ( t , quote a unquote id est [t second unquote] end quote ) :: [a :: [t second :: true]] BE [asterisk IN LET asterisk BE [a IN [s [[ hook-arg -> a ]] [[ hook-res -> t second ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of unitac-idest ( lgcvar ) as "0" enddef

unitac-At ( " )

Index 353 of page check

lgcdef lgcname of unitac-At ( lgcvar ) as "unitac-At ( ""! )" enddef

define value of unitac-At ( u ) as norm [u is val : LET u 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 [t 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 [s 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 [c IN LET asterisk prime prime prime head BE [asterisk IN LET asterisk prime prime prime tail BE [asterisk prime prime prime IN LET unieval ( t first , s , c ) BE [asterisk IN LET asterisk BE [s IN LET unitac-adapt ( "all" , s , c ) BE [asterisk IN LET asterisk BE [s IN LET s [[ hook-arg ]] BE [asterisk IN LET asterisk BE [a IN LET s [[ hook-res ]] BE [asterisk IN LET asterisk BE [r IN LET s [[ hook-idx ]] BE [asterisk IN LET asterisk BE [i IN LET s [[ hook-idx -> i + 1 ]] BE [asterisk IN LET asterisk BE [s IN LET univar ( a , r first , i ) BE [asterisk IN LET asterisk BE [v IN LET make-root ( t , quote a unquote at [v unquote] end quote ) :: [a :: [v :: true]] BE [asterisk IN LET asterisk BE [a IN LET metasubst ( r second , [r first :: v] :: <<>> , c ) BE [asterisk IN LET asterisk BE [r IN [s [[ hook-arg -> a ]] [[ hook-res -> r ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of unitac-At ( lgcvar ) as "0" enddef

unitac-at ( " )

Index 354 of page check

lgcdef lgcname of unitac-at ( lgcvar ) as "unitac-at ( ""! )" enddef

define value of unitac-at ( u ) as norm [u is val : LET u 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 [t 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 [s 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 [c IN LET asterisk prime prime prime head BE [asterisk IN LET asterisk prime prime prime tail BE [asterisk prime prime prime IN LET unieval ( t first , s , c ) BE [asterisk IN LET asterisk BE [s IN LET unitac-adapt ( "all" , s , c ) BE [asterisk IN LET asterisk BE [s IN LET s [[ hook-arg ]] BE [asterisk IN LET asterisk BE [a IN LET s [[ hook-res ]] BE [asterisk IN LET asterisk BE [r IN LET s [[ hook-idx ]] BE [asterisk IN LET asterisk BE [i IN LET s [[ hook-idx -> i + 1 ]] BE [asterisk IN LET asterisk BE [s IN LET univar ( a , r first , i ) BE [asterisk IN LET asterisk BE [v IN LET make-root ( t , quote a unquote at [v unquote] end quote ) :: [a :: [v :: true]] BE [asterisk IN LET asterisk BE [a IN LET metasubst ( r second , [r first :: v] :: <<>> , c ) BE [asterisk IN LET asterisk BE [r IN LET s [[ hook-uni ]] BE [asterisk IN LET asterisk BE [u IN LET unify ( t second , v , u ) BE [asterisk IN LET asterisk BE [u IN LET s [[ hook-uni -> u ]] BE [asterisk IN LET asterisk BE [s IN [s [[ hook-arg -> a ]] [[ hook-res -> r ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of unitac-at ( lgcvar ) as "0" enddef

unitac-Infer ( " )

Index 355 of page check

lgcdef lgcname of unitac-Infer ( lgcvar ) as "unitac-Infer ( ""! )" enddef

define value of unitac-Infer ( u ) as norm [u is val : LET u 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 [t 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 [s 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 [c IN LET asterisk prime prime prime head BE [asterisk IN LET asterisk prime prime prime tail BE [asterisk prime prime prime IN LET unieval ( t first , s , c ) BE [asterisk IN LET asterisk BE [s IN LET s [[ hook-idx ]] BE [asterisk IN LET asterisk BE [i IN LET s [[ hook-idx -> i + 1 ]] BE [asterisk IN LET asterisk BE [s IN LET univar ( t , quote cla end quote , i ) BE [asterisk IN LET asterisk BE [v IN LET s [[ hook-res ]] BE [asterisk IN LET asterisk BE [r IN LET s [[ hook-arg ]] BE [asterisk IN LET asterisk BE [a IN LET make-root ( t , quote v unquote infer [r unquote] end quote ) :: [v :: [r :: true]] BE [asterisk IN LET asterisk BE [r IN LET make-root ( t , quote v unquote infer [a unquote] end quote ) :: [v :: [a :: true]] BE [asterisk IN LET asterisk BE [a IN [s [[ hook-arg -> a ]] [[ hook-res -> r ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of unitac-Infer ( lgcvar ) as "0" enddef

unitac-infer ( " )

Index 356 of page check

lgcdef lgcname of unitac-infer ( lgcvar ) as "unitac-infer ( ""! )" enddef

define value of unitac-infer ( u ) as norm [u is val : LET u 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 [t 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 [s 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 [c IN LET asterisk prime prime prime head BE [asterisk IN LET asterisk prime prime prime tail BE [asterisk prime prime prime IN LET unieval ( t second , s , c ) BE [asterisk IN LET asterisk BE [s IN LET s [[ hook-res ]] BE [asterisk IN LET asterisk BE [r IN LET s [[ hook-arg ]] BE [asterisk IN LET asterisk BE [a IN LET make-root ( t , quote t first unquote infer [r unquote] end quote ) :: [t first :: [r :: true]] BE [asterisk IN LET asterisk BE [r IN LET make-root ( t , quote t first unquote infer [a unquote] end quote ) :: [t first :: [a :: true]] BE [asterisk IN LET asterisk BE [a IN [s [[ hook-arg -> a ]] [[ hook-res -> r ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of unitac-infer ( lgcvar ) as "0" enddef

unitac-Endorse ( " )

Index 357 of page check

lgcdef lgcname of unitac-Endorse ( lgcvar ) as "unitac-Endorse ( ""! )" enddef

define value of unitac-Endorse ( u ) as norm [u is val : LET u 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 [t 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 [s 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 [c IN LET asterisk prime prime prime head BE [asterisk IN LET asterisk prime prime prime tail BE [asterisk prime prime prime IN LET unieval ( t first , s , c ) BE [asterisk IN LET asterisk BE [s IN LET s [[ hook-idx ]] BE [asterisk IN LET asterisk BE [i IN LET s [[ hook-idx -> i + 1 ]] BE [asterisk IN LET asterisk BE [s IN LET univar ( t , quote cla end quote , i ) BE [asterisk IN LET asterisk BE [v IN LET s [[ hook-res ]] BE [asterisk IN LET asterisk BE [r IN LET s [[ hook-arg ]] BE [asterisk IN LET asterisk BE [a IN LET make-root ( t , quote v unquote endorse [r unquote] end quote ) :: [v :: [r :: true]] BE [asterisk IN LET asterisk BE [r IN LET make-root ( t , quote v unquote endorse [a unquote] end quote ) :: [v :: [a :: true]] BE [asterisk IN LET asterisk BE [a IN [s [[ hook-arg -> a ]] [[ hook-res -> r ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of unitac-Endorse ( lgcvar ) as "0" enddef

unitac-endorse ( " )

Index 358 of page check

lgcdef lgcname of unitac-endorse ( lgcvar ) as "unitac-endorse ( ""! )" enddef

define value of unitac-endorse ( u ) as norm [u is val : LET u 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 [t 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 [s 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 [c IN LET asterisk prime prime prime head BE [asterisk IN LET asterisk prime prime prime tail BE [asterisk prime prime prime IN LET unieval ( t second , s , c ) BE [asterisk IN LET asterisk BE [s IN LET s [[ hook-res ]] BE [asterisk IN LET asterisk BE [r IN LET s [[ hook-arg ]] BE [asterisk IN LET asterisk BE [a IN LET make-root ( t , quote t first unquote endorse [r unquote] end quote ) :: [t first :: [r :: true]] BE [asterisk IN LET asterisk BE [r IN LET make-root ( t , quote t first unquote endorse [a unquote] end quote ) :: [t first :: [a :: true]] BE [asterisk IN LET asterisk BE [a IN [s [[ hook-arg -> a ]] [[ hook-res -> r ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of unitac-endorse ( lgcvar ) as "0" enddef

unitac-All ( " )

Index 359 of page check

lgcdef lgcname of unitac-All ( lgcvar ) as "unitac-All ( ""! )" enddef

define value of unitac-All ( u ) as norm [u is val : LET u 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 [t 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 [s 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 [c IN LET asterisk prime prime prime head BE [asterisk IN LET asterisk prime prime prime tail BE [asterisk prime prime prime IN LET unieval ( t first , s , c ) BE [asterisk IN LET asterisk BE [s IN LET s [[ hook-idx ]] BE [asterisk IN LET asterisk BE [i IN LET s [[ hook-idx -> i + 1 ]] BE [asterisk IN LET asterisk BE [s IN LET univar ( t , quote cla end quote , i ) BE [asterisk IN LET asterisk BE [v IN LET s [[ hook-res ]] BE [asterisk IN LET asterisk BE [r IN LET s [[ hook-arg ]] BE [asterisk IN LET asterisk BE [a IN LET make-root ( t , quote All v unquote : [r unquote] end quote ) :: [v :: [r :: true]] BE [asterisk IN LET asterisk BE [r IN LET make-root ( t , quote All v unquote : [a unquote] end quote ) :: [v :: [a :: true]] BE [asterisk IN LET asterisk BE [a IN [s [[ hook-arg -> a ]] [[ hook-res -> r ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of unitac-All ( lgcvar ) as "0" enddef

unitac-all ( " )

Index 360 of page check

lgcdef lgcname of unitac-all ( lgcvar ) as "unitac-all ( ""! )" enddef

define value of unitac-all ( u ) as norm [u is val : LET u 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 [t 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 [s 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 [c IN LET asterisk prime prime prime head BE [asterisk IN LET asterisk prime prime prime tail BE [asterisk prime prime prime IN LET unieval ( t second , s , c ) BE [asterisk IN LET asterisk BE [s IN LET s [[ hook-res ]] BE [asterisk IN LET asterisk BE [r IN LET s [[ hook-arg ]] BE [asterisk IN LET asterisk BE [a IN LET make-root ( t , quote All t first unquote : [r unquote] end quote ) :: [t first :: [r :: true]] BE [asterisk IN LET asterisk BE [r IN LET make-root ( t , quote All t first unquote : [a unquote] end quote ) :: [t first :: [a :: true]] BE [asterisk IN LET asterisk BE [a IN [s [[ hook-arg -> a ]] [[ hook-res -> r ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of unitac-all ( lgcvar ) as "0" enddef

unitac-cut ( " )

Index 361 of page check

lgcdef lgcname of unitac-cut ( lgcvar ) as "unitac-cut ( ""! )" enddef

define value of unitac-cut ( u ) as norm [u is val : LET u 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 [t 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 [s 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 [c IN LET asterisk prime prime prime head BE [asterisk IN LET asterisk prime prime prime tail BE [asterisk prime prime prime IN LET unieval ( t first , s , c ) BE [asterisk IN LET asterisk BE [s IN LET s [[ hook-arg ]] BE [asterisk IN LET asterisk BE [a prime IN LET unieval ( t second , s , c ) BE [asterisk IN LET asterisk BE [s IN LET s [[ hook-res ]] BE [asterisk IN LET asterisk BE [r IN LET s [[ hook-arg ]] BE [asterisk IN LET asterisk BE [a IN LET make-root ( t , quote a prime unquote ;; [a unquote] end quote ) :: [a prime :: [a :: true]] BE [asterisk IN LET asterisk BE [a IN [s [[ hook-arg -> a ]] [[ hook-res -> r ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of unitac-cut ( lgcvar ) as "0" enddef

unitac-adapt ( " , " , " )

Index 362 of page check

lgcdef lgcname of unitac-adapt ( lgcvar , lgcvar , lgcvar ) as "unitac-adapt ( ""! , ""! , ""! )" enddef

define value of unitac-adapt ( t , s , c ) as norm [t is val : [s is val : [c is val : if t = "var" then s else LET s [[ hook-arg ]] BE [asterisk IN LET asterisk BE [a IN LET s [[ hook-res ]] BE [asterisk IN LET asterisk BE [r IN LET r metadef ( c ) BE [asterisk IN LET asterisk BE [d IN if d = "var" then s else if d = t then s else if d = "infer" then unitac-adapt ( t , s [[ hook-arg -> make-root ( a , quote a unquote Ponens end quote ) :: [a :: true] ]] [[ hook-res -> r second ]] , c ) else if d = "endorse" then unitac-adapt ( t , s [[ hook-arg -> make-root ( a , quote a unquote Verify end quote ) :: [a :: true] ]] [[ hook-res -> r second ]] , c ) else if d = "all" then LET s [[ hook-idx ]] BE [asterisk IN LET asterisk BE [i IN LET s [[ hook-idx -> i + 1 ]] BE [asterisk IN LET asterisk BE [s IN LET univar ( a , r first , i ) BE [asterisk IN LET asterisk BE [v IN LET metasubst ( r second , [r first :: v] :: <<>> , c ) BE [asterisk IN LET asterisk BE [r prime IN unitac-adapt ( t , s [[ hook-arg -> make-root ( a , quote a unquote at [v unquote] end quote ) :: [a :: [v :: true]] ]] [[ hook-res -> r prime ]] , c )]]]]]]]] else if t then s else error ( a , diag ( "Cannot convert" ) disp ( r ) diag ( "to type ``" ) diag ( t ) diag ( "''" ) end diagnose )]]]]]]]]] end define

lgcdef lgccharge of unitac-adapt ( lgcvar , lgcvar , lgcvar ) as "0" enddef

unitac-rule ( " )

Index 363 of page check

lgcdef lgcname of unitac-rule ( lgcvar ) as "unitac-rule ( ""! )" enddef

define value of unitac-rule ( u ) as norm [u is val : LET u 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 [t 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 [s 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 [c IN LET asterisk prime prime prime head BE [asterisk IN LET asterisk prime prime prime tail BE [asterisk prime prime prime IN LET s [[ hook-unitac ]] [[ hook-rule ]] BE [asterisk IN LET asterisk BE [d IN [[eval ( d , true , c ) apply [[t :: [s :: [c :: <<>>]]] maptag]] untag]]]]]]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of unitac-rule ( lgcvar ) as "0" enddef

unitac-rule-std ( " )

Index 364 of page check

lgcdef lgcname of unitac-rule-std ( lgcvar ) as "unitac-rule-std ( ""! )" enddef

define value of unitac-rule-std ( x ) as norm [x is val : LET x 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 [t 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 [s 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 [c IN LET asterisk prime prime prime head BE [asterisk IN LET asterisk prime prime prime tail BE [asterisk prime prime prime IN LET t stmt-rhs ( c ) BE [asterisk IN LET asterisk BE [r IN LET unitac-theo ( t , s , c ) BE [asterisk IN LET asterisk BE [a IN LET make-root ( r , quote a unquote Deref end quote ) :: [a :: true] BE [asterisk IN LET asterisk BE [a IN [s [[ hook-arg -> a ]] [[ hook-res -> r ]]]]]]]]]]]]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of unitac-rule-std ( lgcvar ) as "0" enddef

unitac-theo ( " , " , " )

Index 365 of page check

lgcdef lgcname of unitac-theo ( lgcvar , lgcvar , lgcvar ) as "unitac-theo ( ""! , ""! , ""! )" enddef

define value of unitac-theo ( t , s , c ) as norm [t is val : [s is val : [c is val : LET reverse ( s [[ hook-pre ]] ) BE [asterisk IN LET asterisk BE [p IN unitac-rule0 ( t , p , c )]]]]] end define

lgcdef lgccharge of unitac-theo ( lgcvar , lgcvar , lgcvar ) as "0" enddef

unitac-rule0 ( " , " , " )

Index 366 of page check

lgcdef lgcname of unitac-rule0 ( lgcvar , lgcvar , lgcvar ) as "unitac-rule0 ( ""! , ""! , ""! )" enddef

define value of unitac-rule0 ( r , P , c ) as norm [r is val : [P is val : [c is val : LET unitac-rule1 ( r , P , c ) BE [asterisk IN LET asterisk BE [p IN if .not. p then p else if r metadef ( c ) = "plus" then unitac-rule-plus ( r , P , c ) else LET r stmt-rhs ( c ) BE [asterisk IN LET asterisk BE [d IN if .not. d then unitac-rule-stmt ( d , r , P , c ) else error ( r , diag ( "No locally assumed theory includes the following rule:" ) disp ( r ) end diagnose )]]]]]]] end define

lgcdef lgccharge of unitac-rule0 ( lgcvar , lgcvar , lgcvar ) as "0" enddef

unitac-rule-plus ( " , " , " )

Index 367 of page check

lgcdef lgcname of unitac-rule-plus ( lgcvar , lgcvar , lgcvar ) as "unitac-rule-plus ( ""! , ""! , ""! )" enddef

define value of unitac-rule-plus ( R , P , c ) as norm [R is val : [P is val : [c is val : LET R 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 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 [r 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 prime IN LET asterisk prime prime prime head BE [asterisk IN LET asterisk prime prime prime tail BE [asterisk prime prime prime IN LET unitac-rule0 ( r , P , c ) BE [asterisk IN LET asterisk BE [p IN if p then true else LET unitac-rule0 ( r prime , P , c ) BE [asterisk IN LET asterisk BE [p prime IN if p prime then true else [make-root ( R , quote p unquote ;; [p prime unquote ;; [[[r unquote oplus [r prime unquote]] infer [[r unquote oplus [r prime unquote]] Init]] Curry Ponens Ponens]] end quote ) :: [p :: [[make-root ( R , quote p prime unquote ;; [[[r unquote oplus [r prime unquote]] infer [[r unquote oplus [r prime unquote]] Init]] Curry Ponens Ponens] end quote ) :: [p prime :: [[make-root ( R , quote [[r unquote oplus [r prime unquote]] infer [[r unquote oplus [r prime unquote]] Init]] Curry Ponens Ponens end quote ) :: [[make-root ( R , quote [[r unquote oplus [r prime unquote]] infer [[r unquote oplus [r prime unquote]] Init]] Curry Ponens end quote ) :: [[make-root ( R , quote [[r unquote oplus [r prime unquote]] infer [[r unquote oplus [r prime unquote]] Init]] Curry end quote ) :: [[make-root ( R , quote [r unquote oplus [r prime unquote]] infer [[r unquote oplus [r prime unquote]] Init] end quote ) :: [[make-root ( R , quote r unquote oplus [r prime unquote] end quote ) :: [r :: [r prime :: true]]] :: [[make-root ( R , quote [r unquote oplus [r prime unquote]] Init end quote ) :: [[make-root ( R , quote r unquote oplus [r prime unquote] end quote ) :: [r :: [r prime :: true]]] :: true]] :: true]]] :: true]] :: true]] :: true]] :: true]]] :: true]]]]]]]]]]]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of unitac-rule-plus ( lgcvar , lgcvar , lgcvar ) as "0" enddef

unitac-rule-stmt ( " , " , " , " )

Index 368 of page check

lgcdef lgcname of unitac-rule-stmt ( lgcvar , lgcvar , lgcvar , lgcvar ) as "unitac-rule-stmt ( ""! , ""! , ""! , ""! )" enddef

define value of unitac-rule-stmt ( d , r , P , c ) as norm [d is val : [r is val : [P is val : [c is val : LET unitac-rule0 ( d , P , c ) BE [asterisk IN LET asterisk BE [p IN if p then true else [make-root ( r , quote p unquote ;; [d unquote Init id est [r unquote]] end quote ) :: [p :: [[make-root ( r , quote d unquote Init id est [r unquote] end quote ) :: [[make-root ( r , quote d unquote Init end quote ) :: [d :: true]] :: [r :: true]]] :: true]]]]]]]]] end define

lgcdef lgccharge of unitac-rule-stmt ( lgcvar , lgcvar , lgcvar , lgcvar ) as "0" enddef

unitac-rule1 ( " , " , " )

Index 369 of page check

lgcdef lgcname of unitac-rule1 ( lgcvar , lgcvar , lgcvar ) as "unitac-rule1 ( ""! , ""! , ""! )" enddef

define value of unitac-rule1 ( r , P , c ) as norm [r is val : [P is val : [c is val : if P atom then true else [unitac-rule2 ( r , P head first , c ) .and. unitac-rule1 ( r , P tail , c )]]]] end define

lgcdef lgccharge of unitac-rule1 ( lgcvar , lgcvar , lgcvar ) as "0" enddef

unitac-rule2 ( " , " , " )

Index 370 of page check

lgcdef lgcname of unitac-rule2 ( lgcvar , lgcvar , lgcvar ) as "unitac-rule2 ( ""! , ""! , ""! )" enddef

define value of unitac-rule2 ( r , T , c ) as norm [r is val : [T is val : [c is val : LET unitac-search ( r , T , c ) BE [asterisk IN LET asterisk BE [p IN if p then true else unitac-rule3 ( r , p )]]]]] end define

lgcdef lgccharge of unitac-rule2 ( lgcvar , lgcvar , lgcvar ) as "0" enddef

unitac-search ( " , " , " )

Index 371 of page check

lgcdef lgcname of unitac-search ( lgcvar , lgcvar , lgcvar ) as "unitac-search ( ""! , ""! , ""! )" enddef

define value of unitac-search ( r , T , c ) as norm [r is val : [T is val : [c is val : [unitac-search1 ( r , T , true , T :: <<>> , c ) catch tail]]]] end define

lgcdef lgccharge of unitac-search ( lgcvar , lgcvar , lgcvar ) as "0" enddef

unitac-search1 ( " , " , " , " , " )

Index 372 of page check

lgcdef lgcname of unitac-search1 ( lgcvar , lgcvar , lgcvar , lgcvar , lgcvar ) as "unitac-search1 ( ""! , ""! , ""! , ""! , ""! )" enddef

define value of unitac-search1 ( r , T , p , a , c ) as norm [r is val : [T is val : [p is val : [a is val : [c is val : if r t= T then [reverse ( a ) :: p] raise else LET T stmt-rhs ( c ) BE [asterisk IN LET asterisk BE [T prime IN if .not. [T prime] then unitac-search1 ( r , T prime , reverse ( a ) :: p , T prime :: <<>> , c ) else if T metadef ( c ) != "plus" then true else [unitac-search1 ( r , T first , p , "head" :: a , c ) .and. unitac-search1 ( r , T second , p , "tail" :: a , c )]]]]]]]] end define

lgcdef lgccharge of unitac-search1 ( lgcvar , lgcvar , lgcvar , lgcvar , lgcvar ) as "0" enddef

unitac-rule3 ( " , " )

Index 373 of page check

lgcdef lgcname of unitac-rule3 ( lgcvar , lgcvar ) as "unitac-rule3 ( ""! , ""! )" enddef

define value of unitac-rule3 ( r , p ) as norm [r is val : [p is val : LET unitac-rule4 ( r , p head ) BE [asterisk IN LET asterisk BE [q IN if p tail then q else LET unitac-rule3 ( r , p tail ) BE [asterisk IN LET asterisk BE [p IN [make-root ( r , quote p unquote Deref ;; [q unquote] end quote ) :: [[make-root ( r , quote p unquote Deref end quote ) :: [p :: true]] :: [q :: true]]]]]]]]] end define

lgcdef lgccharge of unitac-rule3 ( lgcvar , lgcvar ) as "0" enddef

unitac-rule4 ( " , " )

Index 374 of page check

lgcdef lgcname of unitac-rule4 ( lgcvar , lgcvar ) as "unitac-rule4 ( ""! , ""! )" enddef

define value of unitac-rule4 ( r , a ) as norm [r is val : [a is val : LET unitac-rule5 ( r , a head , a tail , true ) BE [asterisk IN LET asterisk BE [p IN [make-root ( r , quote p unquote Ponens end quote ) :: [p :: true]]]]]] end define

lgcdef lgccharge of unitac-rule4 ( lgcvar , lgcvar ) as "0" enddef

unitac-rule5 ( " , " , " , " )

Index 375 of page check

lgcdef lgcname of unitac-rule5 ( lgcvar , lgcvar , lgcvar , lgcvar ) as "unitac-rule5 ( ""! , ""! , ""! , ""! )" enddef

define value of unitac-rule5 ( r , T , a , s ) as norm [r is val : [T is val : [a is val : [s is val : if a atom then LET unitac-stack ( r , s , make-root ( r , quote T unquote Init end quote ) :: [T :: true] ) BE [asterisk IN LET asterisk BE [p IN [make-root ( r , quote T unquote infer [p unquote] end quote ) :: [T :: [p :: 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 [e IN LET asterisk prime head BE [asterisk IN LET asterisk prime tail BE [asterisk prime IN LET asterisk BE [a IN if e = "head" then make-root ( r , quote unitac-rule5 ( r , T first , a , T second :: s ) unquote Uncurry end quote ) :: [unitac-rule5 ( r , T first , a , T second :: s ) :: true] else [make-root ( r , quote [T first unquote infer [unitac-rule5 ( r , T second , a , s ) unquote]] Uncurry end quote ) :: [[make-root ( r , quote T first unquote infer [unitac-rule5 ( r , T second , a , s ) unquote] end quote ) :: [T first :: [unitac-rule5 ( r , T second , a , s ) :: true]]] :: true]]]]]]]]]]]]]] end define

lgcdef lgccharge of unitac-rule5 ( lgcvar , lgcvar , lgcvar , lgcvar ) as "0" enddef

unitac-stack ( " , " , " )

Index 376 of page check

lgcdef lgcname of unitac-stack ( lgcvar , lgcvar , lgcvar ) as "unitac-stack ( ""! , ""! , ""! )" enddef

define value of unitac-stack ( r , s , t ) as norm [r is val : [s is val : [t is val : if s atom then t 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 asterisk BE [s IN LET unitac-stack ( r , s , t ) BE [asterisk IN LET asterisk BE [t IN [make-root ( r , quote p unquote infer [t unquote] end quote ) :: [p :: [t :: true]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of unitac-stack ( lgcvar , lgcvar , lgcvar ) as "0" enddef

unitac-lemma ( " )

Index 377 of page check

lgcdef lgcname of unitac-lemma ( lgcvar ) as "unitac-lemma ( ""! )" enddef

define value of unitac-lemma ( u ) as norm [u is val : LET u 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 [t 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 [s 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 [c IN LET asterisk prime prime prime head BE [asterisk IN LET asterisk prime prime prime tail BE [asterisk prime prime prime IN LET s [[ hook-unitac ]] [[ hook-lemma ]] BE [asterisk IN LET asterisk BE [d IN [[eval ( d , true , c ) apply [[t :: [s :: [c :: <<>>]]] maptag]] untag]]]]]]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of unitac-lemma ( lgcvar ) as "0" enddef

unitac-lemma-std ( " )

Index 378 of page check

lgcdef lgcname of unitac-lemma-std ( lgcvar ) as "unitac-lemma-std ( ""! )" enddef

define value of unitac-lemma-std ( x ) as norm [x is val : LET x 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 [t 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 [s 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 [c IN LET asterisk prime prime prime head BE [asterisk IN LET asterisk prime prime prime tail BE [asterisk prime prime prime IN LET t stmt-rhs ( c ) 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 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 [T 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 LET unitac-theo ( T , s , c ) BE [asterisk IN LET asterisk BE [a prime IN LET make-root ( t , quote a prime unquote ;; [t unquote Init Deref Ponens] end quote ) :: [a prime :: [[make-root ( t , quote t unquote Init Deref Ponens end quote ) :: [[make-root ( t , quote t unquote Init Deref end quote ) :: [[make-root ( t , quote t unquote Init end quote ) :: [t :: true]] :: true]] :: true]] :: true]] BE [asterisk IN LET asterisk BE [a IN [s [[ hook-arg -> a ]] [[ hook-res -> r ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of unitac-lemma-std ( lgcvar ) as "0" enddef

unitac-Rule ( " )

Index 379 of page check

lgcdef lgcname of unitac-Rule ( lgcvar ) as "unitac-Rule ( ""! )" enddef

define value of unitac-Rule ( x ) as norm [x is val : LET x 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 [t 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 [s 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 [c IN LET asterisk prime prime prime head BE [asterisk IN LET asterisk prime prime prime tail BE [asterisk prime prime prime IN LET t first BE [asterisk IN LET asterisk BE [r IN LET unitac-theo ( r , s , c ) BE [asterisk IN LET asterisk BE [a IN [s [[ hook-arg -> a ]] [[ hook-res -> r ]]]]]]]]]]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of unitac-Rule ( lgcvar ) as "0" enddef

seqcnt ( " , " )

Index 380 of page check

lgcdef lgcname of seqcnt ( lgcvar , lgcvar ) as "seqcnt ( ""! , ""! )" enddef

define value of seqcnt ( t , c ) as norm [t is val : [c is val : if t r= quote x Init end quote then 1 else if t r= quote x Ponens end quote then 1 + seqcnt ( t first , c ) else if t r= quote x Probans end quote then 1 + seqcnt ( t first , c ) else if t r= quote x Verify end quote then 1 + seqcnt ( t first , c ) else if t r= quote x Curry end quote then 1 + seqcnt ( t first , c ) else if t r= quote x Uncurry end quote then 1 + seqcnt ( t first , c ) else if t r= quote x Deref end quote then 1 + seqcnt ( t first , c ) else if t r= quote x at y end quote then 1 + seqcnt ( t first , c ) else if t r= quote x infer y end quote then 1 + seqcnt ( t second , c ) else if t r= quote x endorse y end quote then 1 + seqcnt ( t second , c ) else if t r= quote x id est y end quote then 1 + seqcnt ( t first , c ) else if t r= quote All x : y end quote then 1 + seqcnt ( t second , c ) else if t r= quote x ;; y end quote then [1 + seqcnt ( t first , c )] + seqcnt ( t second , c ) else error ( t , LocateProofLine ( t , c ) diag ( "In seqcnt: Unknown seqop in root of" ) disp ( t ) end diagnose )]] end define

lgcdef lgccharge of seqcnt ( lgcvar , lgcvar ) as "0" enddef

tactic-conclude-cut ( " )

Index 381 of page check

lgcdef lgcname of tactic-conclude-cut ( lgcvar ) as "tactic-conclude-cut ( ""! )" enddef

define value of tactic-conclude-cut ( u ) as norm [u is val : LET u 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 [t 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 [s 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 [c IN LET asterisk prime prime prime head BE [asterisk IN LET asterisk prime prime prime tail BE [asterisk prime prime prime IN LET t 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 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 [l 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 [a IN LET asterisk prime prime prime head BE [asterisk IN LET asterisk prime prime prime tail BE [asterisk prime 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 prime IN LET asterisk prime prime prime prime head BE [asterisk IN LET asterisk prime prime prime prime tail BE [asterisk prime prime prime prime IN LET asterisk BE [x IN LET asterisk prime prime prime prime head BE [asterisk IN LET asterisk prime prime prime prime tail BE [asterisk prime prime 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 prime prime IN LET asterisk prime prime prime prime prime head BE [asterisk IN LET asterisk prime prime prime prime prime tail BE [asterisk prime prime prime prime prime IN LET asterisk BE [n IN LET asterisk prime prime prime prime prime head BE [asterisk IN LET asterisk prime prime prime prime prime tail BE [asterisk prime prime prime prime prime IN LET taceval ( make-root ( t , quote a unquote conclude [x unquote] end quote ) :: [a :: [x :: true]] , s , c ) BE [asterisk IN LET asterisk BE [s prime IN LET s prime [[ hook-arg ]] BE [asterisk IN LET asterisk BE [a prime IN LET s prime [[ hook-res ]] BE [asterisk IN LET asterisk BE [r IN LET tactic-push ( hook-pre , l :: [r :: [[make-root ( r , quote r unquote Init end quote ) :: [r :: true]] :: <<>>]] , s ) BE [asterisk IN LET asterisk BE [s IN LET taceval ( n , s , c ) BE [asterisk IN LET asterisk BE [s IN LET s [[ hook-arg ]] BE [asterisk IN LET asterisk BE [a IN [s [[ hook-arg -> make-root ( t , quote a prime unquote ;; [a unquote] end quote ) :: [a prime :: [a :: true]] ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of tactic-conclude-cut ( lgcvar ) as "0" enddef

tactic-premise-line ( " )

Index 382 of page check

lgcdef lgcname of tactic-premise-line ( lgcvar ) as "tactic-premise-line ( ""! )" enddef

define value of tactic-premise-line ( u ) as norm [u is val : LET u 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 [t 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 [s 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 [c IN LET asterisk prime prime prime head BE [asterisk IN LET asterisk prime prime prime tail BE [asterisk prime prime prime IN LET t 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 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 [l 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 [x IN LET asterisk prime prime prime head BE [asterisk IN LET asterisk prime prime prime tail BE [asterisk prime 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 prime IN LET asterisk prime prime prime prime head BE [asterisk IN LET asterisk prime prime prime prime tail BE [asterisk prime prime prime prime IN LET asterisk BE [n IN LET asterisk prime prime prime prime head BE [asterisk IN LET asterisk prime prime prime prime tail BE [asterisk prime prime prime prime IN LET taceval ( n , tactic-push ( hook-pre , l :: [x :: [[make-root ( x , quote x unquote Init end quote ) :: [x :: true]] :: <<>>]] , s ) , c ) BE [asterisk IN LET asterisk BE [s IN LET make-root ( t , quote x unquote infer [s [[ hook-arg ]] unquote] end quote ) :: [x :: [s [[ hook-arg ]] :: true]] BE [asterisk IN LET asterisk BE [a IN LET make-root ( t , quote x unquote infer [s [[ hook-res ]] unquote] end quote ) :: [x :: [s [[ hook-res ]] :: true]] BE [asterisk IN LET asterisk BE [r IN [s [[ hook-arg -> a ]] [[ hook-res -> r ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of tactic-premise-line ( lgcvar ) as "0" enddef

tactic-condition-line ( " )

Index 383 of page check

lgcdef lgcname of tactic-condition-line ( lgcvar ) as "tactic-condition-line ( ""! )" enddef

define value of tactic-condition-line ( u ) as norm [u is val : LET u 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 [t 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 [s 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 [c IN LET asterisk prime prime prime head BE [asterisk IN LET asterisk prime prime prime tail BE [asterisk prime prime prime IN LET t 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 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 [l 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 [x IN LET asterisk prime prime prime head BE [asterisk IN LET asterisk prime prime prime tail BE [asterisk prime 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 prime IN LET asterisk prime prime prime prime head BE [asterisk IN LET asterisk prime prime prime prime tail BE [asterisk prime prime prime prime IN LET asterisk BE [n IN LET asterisk prime prime prime prime head BE [asterisk IN LET asterisk prime prime prime prime tail BE [asterisk prime prime prime prime IN LET taceval ( n , tactic-push ( hook-cond , l :: [x :: <<>>] , s ) , c ) BE [asterisk IN LET asterisk BE [s IN LET make-root ( t , quote x unquote endorse [s [[ hook-arg ]] unquote] end quote ) :: [x :: [s [[ hook-arg ]] :: true]] BE [asterisk IN LET asterisk BE [a IN LET make-root ( t , quote x unquote endorse [s [[ hook-res ]] unquote] end quote ) :: [x :: [s [[ hook-res ]] :: true]] BE [asterisk IN LET asterisk BE [r IN [s [[ hook-arg -> a ]] [[ hook-res -> r ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of tactic-condition-line ( lgcvar ) as "0" enddef

tactic-block ( " )

Index 384 of page check

lgcdef lgcname of tactic-block ( lgcvar ) as "tactic-block ( ""! )" enddef

define value of tactic-block ( u ) as norm [u is val : LET u 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 [t 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 [s 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 [c IN LET asterisk prime prime prime head BE [asterisk IN LET asterisk prime prime prime tail BE [asterisk prime prime prime IN LET t 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 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 [l 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 [x IN LET asterisk prime prime prime head BE [asterisk IN LET asterisk prime prime prime tail BE [asterisk prime 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 prime IN LET asterisk prime prime prime prime head BE [asterisk IN LET asterisk prime prime prime prime tail BE [asterisk prime prime prime prime IN LET asterisk BE [k IN LET asterisk prime prime prime prime head BE [asterisk IN LET asterisk prime prime prime prime tail BE [asterisk prime prime 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 prime prime IN LET asterisk prime prime prime prime prime head BE [asterisk IN LET asterisk prime prime prime prime prime tail BE [asterisk prime prime prime prime prime IN LET asterisk BE [n IN LET asterisk prime prime prime prime prime head BE [asterisk IN LET asterisk prime prime prime prime prime tail BE [asterisk prime prime prime prime prime IN LET taceval ( x , s , c ) BE [asterisk IN LET asterisk BE [s prime IN LET s prime [[ hook-arg ]] BE [asterisk IN LET asterisk BE [a prime IN LET s prime [[ hook-res ]] BE [asterisk IN LET asterisk BE [r IN LET tactic-push ( hook-pre , k :: [r :: [[make-root ( r , quote r unquote Init end quote ) :: [r :: true]] :: <<>>]] , s ) BE [asterisk IN LET asterisk BE [s IN LET taceval ( n , s , c ) BE [asterisk IN LET asterisk BE [s IN LET s [[ hook-arg ]] BE [asterisk IN LET asterisk BE [a IN [s [[ hook-arg -> make-root ( t , quote a prime unquote ;; [a unquote] end quote ) :: [a prime :: [a :: true]] ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of tactic-block ( lgcvar ) as "0" enddef

System S

Index 385 of page check

lgcdef lgcname of System S as "System S" enddef

lgcdef lgccharge of System S as "0" enddef

define statement of System S as S.S1 oplus S.S5 end define

S.S1

Index 386 of page check

lgcdef lgcname of S.S1 as "S.S1" enddef

lgcdef lgccharge of S.S1 as "0" enddef

define unitac of S.S1 as \ u . unitac-rule ( u ) end define

define statement of S.S1 as All #x : All #y : All #z : [[#x = #y] infer [[#x = #z] infer [#y = #z]]] end define

S.S5

Index 387 of page check

lgcdef lgcname of S.S5 as "S.S5" enddef

lgcdef lgccharge of S.S5 as "0" enddef

define unitac of S.S5 as \ u . unitac-rule ( u ) end define

define statement of S.S5 as All #x : [[#x + 0] = #x] end define

S.reflexivity

Index 388 of page check

lgcdef lgcname of S.reflexivity as "S.reflexivity" enddef

lgcdef lgccharge of S.reflexivity as "0" enddef

define proof of S.reflexivity as \ p . \ c . taceval1 ( quote System S end quote , quote All #x : Line L02 : S.S5 >> [#x + 0] = #x ; [[[S.S1 ponens L02] ponens L02] conclude [#x = #x]] end quote , c ) end define

define unitac of S.reflexivity as \ u . unitac-lemma ( u ) end define

define statement of S.reflexivity as System S infer All #x : [#x = #x] end define

"#

Index 389 of page check

lgcdef lgcname of lgcvar# as ""-""!#" enddef

Define tex show of x# as "".[ x ]" {}^{\#}" end define

lgcdef lgccharge of lgcvar# as "4" enddef

define meta of x# as "var" end define

" plist ( " )

Index 390 of page check

lgcdef lgcname of lgcvar plist ( lgcvar ) as ""-""! plist ( ""! )" enddef

define value of x plist ( c ) as norm [x is val : [c is val : [c [[ x ref ]] [[ "codex" ]] [[ x ref ]] [[ x idx ]] [[ 0 ]]]]] end define

lgcdef lgccharge of lgcvar plist ( lgcvar ) as "4" enddef

" def ( " , " )

Index 391 of page check

lgcdef lgcname of lgcvar def ( lgcvar , lgcvar ) as ""-""! def ( ""! , ""! )" enddef

define value of x def ( c , a ) as norm [x is val : [c is val : [a is val : [x plist ( c ) [[ a ]]]]]] end define

lgcdef lgccharge of lgcvar def ( lgcvar , lgcvar ) as "4" enddef

" lhs ( " , " )

Index 392 of page check

lgcdef lgcname of lgcvar lhs ( lgcvar , lgcvar ) as ""-""! lhs ( ""! , ""! )" enddef

define value of x lhs ( c , a ) as norm [x is val : [c is val : [a is val : [x def ( c , a ) second]]]] end define

lgcdef lgccharge of lgcvar lhs ( lgcvar , lgcvar ) as "4" enddef

" rhs ( " , " )

Index 393 of page check

lgcdef lgcname of lgcvar rhs ( lgcvar , lgcvar ) as ""-""! rhs ( ""! , ""! )" enddef

define value of x rhs ( c , a ) as norm [x is val : [c is val : [a is val : [x def ( c , a ) third]]]] end define

lgcdef lgccharge of lgcvar rhs ( lgcvar , lgcvar ) as "4" enddef

" metadef ( " )

Index 394 of page check

lgcdef lgcname of lgcvar metadef ( lgcvar ) as ""-""! metadef ( ""! )" enddef

define value of x metadef ( c ) as norm [x is val : [c is val : [x rhs ( c , meta ) idx]]] end define

lgcdef lgccharge of lgcvar metadef ( lgcvar ) as "4" enddef

" metavar ( " )

Index 395 of page check

lgcdef lgcname of lgcvar metavar ( lgcvar ) as ""-""! metavar ( ""! )" enddef

define value of x metavar ( c ) as norm [x is val : [c is val : [x metadef ( c ) = "var"]]] end define

lgcdef lgccharge of lgcvar metavar ( lgcvar ) as "4" enddef

" stmt-rhs ( " )

Index 396 of page check

lgcdef lgcname of lgcvar stmt-rhs ( lgcvar ) as ""-""! stmt-rhs ( ""! )" enddef

define value of x stmt-rhs ( c ) as norm [x is val : [c is val : [x rhs ( c , statement )]]] end define

lgcdef lgccharge of lgcvar stmt-rhs ( lgcvar ) as "4" enddef

" proof-rhs ( " )

Index 397 of page check

lgcdef lgcname of lgcvar proof-rhs ( lgcvar ) as ""-""! proof-rhs ( ""! )" enddef

define value of x proof-rhs ( c ) as norm [x is val : [c is val : [x rhs ( c , proof )]]] end define

lgcdef lgccharge of lgcvar proof-rhs ( lgcvar ) as "4" enddef

" tactic-rhs ( " )

Index 398 of page check

lgcdef lgcname of lgcvar tactic-rhs ( lgcvar ) as ""-""! tactic-rhs ( ""! )" enddef

define value of x tactic-rhs ( c ) as norm [x is val : [c is val : [x rhs ( c , tactic )]]] end define

lgcdef lgccharge of lgcvar tactic-rhs ( lgcvar ) as "4" enddef

" unitac-rhs ( " )

Index 399 of page check

lgcdef lgcname of lgcvar unitac-rhs ( lgcvar ) as ""-""! unitac-rhs ( ""! )" enddef

define value of x unitac-rhs ( c ) as norm [x is val : [c is val : [x rhs ( c , unitac )]]] end define

lgcdef lgccharge of lgcvar unitac-rhs ( lgcvar ) as "4" enddef

" locate-rhs ( " )

Index 400 of page check

lgcdef lgcname of lgcvar locate-rhs ( lgcvar ) as ""-""! locate-rhs ( ""! )" enddef

define value of x locate-rhs ( c ) as norm [x is val : [c is val : [x rhs ( c , locate )]]] end define

lgcdef lgccharge of lgcvar locate-rhs ( lgcvar ) as "4" enddef

" mathdef ( " )

Index 401 of page check

lgcdef lgcname of lgcvar mathdef ( lgcvar ) as ""-""! mathdef ( ""! )" enddef

define value of x mathdef ( c ) as norm [x is val : [c is val : [x rhs ( c , math ) idx]]] end define

lgcdef lgccharge of lgcvar mathdef ( lgcvar ) as "4" enddef

" valuedef ( " )

Index 402 of page check

lgcdef lgcname of lgcvar valuedef ( lgcvar ) as ""-""! valuedef ( ""! )" enddef

define value of x valuedef ( c ) as norm [x is val : [c is val : [c [[ x ref ]] [[ "code" ]] [[ x idx ]]]]] end define

lgcdef lgccharge of lgcvar valuedef ( lgcvar ) as "4" enddef

" objectvar ( " )

Index 403 of page check

lgcdef lgcname of lgcvar objectvar ( lgcvar ) as ""-""! objectvar ( ""! )" enddef

define value of x objectvar ( c ) as norm [x is val : [c is val : [[[x metadef ( c ) = true] .and. [x valuedef ( c ) = true]] .and. [x mathdef ( c ) = true]]]] end define

lgcdef lgccharge of lgcvar objectvar ( lgcvar ) as "4" enddef

" objectlambda ( " )

Index 404 of page check

lgcdef lgcname of lgcvar objectlambda ( lgcvar ) as ""-""! objectlambda ( ""! )" enddef

define value of x objectlambda ( c ) as norm [x is val : [c is val : [[x metadef ( c ) = true] .and. [x valuedef ( c ) = 0]]]] end define

lgcdef lgccharge of lgcvar objectlambda ( lgcvar ) as "4" enddef

" objectquote ( " )

Index 405 of page check

lgcdef lgcname of lgcvar objectquote ( lgcvar ) as ""-""! objectquote ( ""! )" enddef

define value of x objectquote ( c ) as norm [x is val : [c is val : [[x metadef ( c ) = true] .and. [x valuedef ( c ) = 1]]]] end define

lgcdef lgccharge of lgcvar objectquote ( lgcvar ) as "4" enddef

" objectterm ( " )

Index 406 of page check

lgcdef lgcname of lgcvar objectterm ( lgcvar ) as ""-""! objectterm ( ""! )" enddef

define value of x objectterm ( c ) as norm [x is val : [c is val : LET x metadef ( c ) BE [asterisk IN LET asterisk BE [d IN if d = "var" then true else if d != true then false else LET x valuedef ( c ) BE [asterisk IN LET asterisk BE [d IN if d = 0 then [x first objectvar ( c ) .or. [x first metavar ( c )]] .and. [x second objectterm ( c )] else if d = 1 then true else if d .and. [x mathdef ( c )] then true else [x tail objectterm* ( c )]]]]]]] end define

lgcdef lgccharge of lgcvar objectterm ( lgcvar ) as "4" enddef

" objectterm* ( " )

Index 407 of page check

lgcdef lgcname of lgcvar objectterm* ( lgcvar ) as ""-""! objectterm* ( ""! )" enddef

define value of x objectterm* ( c ) as norm [x is val : [c is val : [x atom .or. [x head objectterm ( c ) .and. [x tail objectterm* ( c )]]]]] end define

lgcdef lgccharge of lgcvar objectterm* ( lgcvar ) as "4" enddef

" metaterm ( " )

Index 408 of page check

lgcdef lgcname of lgcvar metaterm ( lgcvar ) as ""-""! metaterm ( ""! )" enddef

define value of x metaterm ( c ) as norm [x is val : [c is val : LET x metadef ( c ) BE [asterisk IN LET asterisk BE [d IN if d = "var" then true else if d = "all" then x first metavar ( c ) .and. [x second metaterm ( c )] else if d != true then x tail metaterm* ( c ) else [x objectterm ( c )]]]]] end define

lgcdef lgccharge of lgcvar metaterm ( lgcvar ) as "4" enddef

" metaterm* ( " )

Index 409 of page check

lgcdef lgcname of lgcvar metaterm* ( lgcvar ) as ""-""! metaterm* ( ""! )" enddef

define value of x metaterm* ( c ) as norm [x is val : [c is val : [x atom .or. [x head metaterm ( c ) .and. [x tail metaterm* ( c )]]]]] end define

lgcdef lgccharge of lgcvar metaterm* ( lgcvar ) as "4" enddef

" metaavoid ( " ) "

Index 410 of page check

lgcdef lgcname of lgcvar metaavoid ( lgcvar ) lgcvar as ""-""! metaavoid ( ""! ) ""!" enddef

define value of x metaavoid ( c ) y as norm [x is val : [c is val : [y is val : [x metavar ( c ) .and. metaavoid1 ( x , y , c )]]]] end define

lgcdef lgccharge of lgcvar metaavoid ( lgcvar ) lgcvar as "4" enddef

" metaavoid* ( " ) "

Index 411 of page check

lgcdef lgcname of lgcvar metaavoid* ( lgcvar ) lgcvar as ""-""! metaavoid* ( ""! ) ""!" enddef

define value of x metaavoid* ( c ) y as norm [x is val : [c is val : [y is val : if y atom then true else if x metaavoid ( c ) [y head] then x metaavoid* ( c ) [y tail] else [y head]]]] end define

lgcdef lgccharge of lgcvar metaavoid* ( lgcvar ) lgcvar as "4" enddef

" objectavoid ( " ) "

Index 412 of page check

lgcdef lgcname of lgcvar objectavoid ( lgcvar ) lgcvar as ""-""! objectavoid ( ""! ) ""!" enddef

define value of x objectavoid ( c ) y as norm [x is val : [c is val : [y is val : [[x :: <<>>] objectavoid* ( c ) y]]]] end define

lgcdef lgccharge of lgcvar objectavoid ( lgcvar ) lgcvar as "4" enddef

" objectavoid* ( " ) "

Index 413 of page check

lgcdef lgcname of lgcvar objectavoid* ( lgcvar ) lgcvar as ""-""! objectavoid* ( ""! ) ""!" enddef

define value of x objectavoid* ( c ) y as norm [x is val : [c is val : [y is val : [distinctvar ( x , c ) .and. [objectavoid1 ( x , y , c , true ) catch tail]]]]] end define

lgcdef lgccharge of lgcvar objectavoid* ( lgcvar ) lgcvar as "4" enddef

" set+ "

Index 414 of page check

lgcdef lgcname of lgcvar set+ lgcvar as ""-""! set+ ""!" enddef

define value of x set+ y as norm [x is val : [y is val : if y member x then x else [y :: x]]] end define

lgcdef lgccharge of lgcvar set+ lgcvar as "12" enddef

" set- "

Index 415 of page check

lgcdef lgcname of lgcvar set- lgcvar as ""-""! set- ""!" enddef

define value of x set- y as norm [x is val : [y is val : if y member x then x set-- y else x]] end define

lgcdef lgccharge of lgcvar set- lgcvar as "12" enddef

" set-- "

Index 416 of page check

lgcdef lgcname of lgcvar set-- lgcvar as ""-""! set-- ""!" enddef

define value of x set-- y as norm [x is val : [y is val : if x atom then true else if x head t= y then x tail else [x head :: [x tail set-- y]]]] end define

lgcdef lgccharge of lgcvar set-- lgcvar as "12" enddef

" union "

Index 417 of page check

lgcdef lgcname of lgcvar union lgcvar as ""-""! union ""!" enddef

define value of x union y as norm [x is val : [y is val : if x atom then y else [x tail union [y set+ [x head]]]]] end define

lgcdef lgccharge of lgcvar union lgcvar as "12" enddef

" member "

Index 418 of page check

lgcdef lgcname of lgcvar member lgcvar as ""-""! member ""!" enddef

Define tex show of x member y as "".[ x ][" \in "[ y ]"".] end define

define value of x member y as norm [x is val : [y is val : if y atom then false else [[x t= [y head]] .or. [x member [y tail]]]]] end define

lgcdef lgccharge of lgcvar member lgcvar as "20" enddef

" subset "

Index 419 of page check

lgcdef lgcname of lgcvar subset lgcvar as ""-""! subset ""!" enddef

define value of x subset y as norm [x is val : [y is val : if x atom then true else [[x head member y] .and. [x tail subset y]]]] end define

lgcdef lgccharge of lgcvar subset lgcvar as "20" enddef

" set= "

Index 420 of page check

lgcdef lgcname of lgcvar set= lgcvar as ""-""! set= ""!" enddef

define value of x set= y as norm [x is val : [y is val : [[x subset y] .and. [y subset x]]]] end define

lgcdef lgccharge of lgcvar set= lgcvar as "20" enddef

" sequent= "

Index 421 of page check

lgcdef lgcname of lgcvar sequent= lgcvar as ""-""! sequent= ""!" enddef

define value of x sequent= y as norm [x is val : [y is val : [[[x zeroth set= [y zeroth]] .and. [x first set= [y first]]] .and. [x second t= [y second]]]]] end define

lgcdef lgccharge of lgcvar sequent= lgcvar as "20" enddef

p.not "

Index 422 of page check

lgcdef lgcname of p.not lgcvar as "p.not ""!" enddef

Define tex show of p.not x as " \neg "[ x ]"". end define

lgcdef lgccharge of p.not lgcvar as "22" enddef

" p.imply "

Index 423 of page check

lgcdef lgcname of lgcvar p.imply lgcvar as ""-""! p.imply ""!" enddef

Define tex show of x p.imply y as "".[ x ][" \Rightarrow "[ y ]"".] end define

lgcdef lgccharge of lgcvar p.imply lgcvar as "29" enddef

metadeclare "

Index 424 of page check

lgcdef lgcname of metadeclare lgcvar as "metadeclare ""!" enddef

Define tex show of metadeclare x as " meta\ \linebreak [0]"[ x ]"". end define

define macro of metadeclare x as \ x . expand ( quote macro define metadeclare x as meta define x as "var" end define end define end quote , x ) end define

lgcdef lgccharge of metadeclare lgcvar as "32" enddef

" Init

Index 425 of page check

lgcdef lgcname of lgcvar Init as ""-""! Init" enddef

Define tex show of x Init as "".[ x ]" {}^I " end define

lgcdef lgccharge of lgcvar Init as "38" enddef

define meta of x Init as "Init" end define

define unitac of x Init as \ u . unitac-Init ( u ) end define

define tactic of x Init as \ u . tactic-Init ( u ) end define

" Ponens

Index 426 of page check

lgcdef lgcname of lgcvar Ponens as ""-""! Ponens" enddef

Define tex show of x Ponens as "".[ x ]" {}^{\rhd} " end define

lgcdef lgccharge of lgcvar Ponens as "38" enddef

define meta of x Ponens as "Ponens" end define

define unitac of x Ponens as \ u . unitac-Ponens ( u ) end define

define tactic of x Ponens as \ u . tactic-Ponens ( u ) end define

" Probans

Index 427 of page check

lgcdef lgcname of lgcvar Probans as ""-""! Probans" enddef

Define tex show of x Probans as "".[ x ]" {\makebox[0mm][l]{${}^\rhd$}\,{}^\rhd} " end define

lgcdef lgccharge of lgcvar Probans as "38" enddef

define meta of x Probans as "Probans" end define

define unitac of x Probans as \ u . unitac-Probans ( u ) end define

define tactic of x Probans as \ u . tactic-Probans ( u ) end define

" Verify

Index 428 of page check

lgcdef lgcname of lgcvar Verify as ""-""! Verify" enddef

Define tex show of x Verify as "".[ x ]" {}^{\ast} " end define

lgcdef lgccharge of lgcvar Verify as "38" enddef

define meta of x Verify as "Verify" end define

define unitac of x Verify as \ u . unitac-Verify ( u ) end define

define tactic of x Verify as \ u . tactic-Verify ( u ) end define

" Curry

Index 429 of page check

lgcdef lgcname of lgcvar Curry as ""-""! Curry" enddef

Define tex show of x Curry as "".[ x ]" {}^C " end define

lgcdef lgccharge of lgcvar Curry as "38" enddef

define meta of x Curry as "Curry" end define

define unitac of x Curry as \ u . unitac-Curry ( u ) end define

define tactic of x Curry as \ u . tactic-Curry ( u ) end define

" Uncurry

Index 430 of page check

lgcdef lgcname of lgcvar Uncurry as ""-""! Uncurry" enddef

Define tex show of x Uncurry as "".[ x ]" {}^U " end define

lgcdef lgccharge of lgcvar Uncurry as "38" enddef

define meta of x Uncurry as "Uncurry" end define

define unitac of x Uncurry as \ u . unitac-Uncurry ( u ) end define

define tactic of x Uncurry as \ u . tactic-Uncurry ( u ) end define

" Deref

Index 431 of page check

lgcdef lgcname of lgcvar Deref as ""-""! Deref" enddef

Define tex show of x Deref as "".[ x ]" {}^D " end define

lgcdef lgccharge of lgcvar Deref as "38" enddef

define meta of x Deref as "Dereference" end define

define unitac of x Deref as \ u . unitac-Deref ( u ) end define

define tactic of x Deref as \ u . tactic-Deref ( u ) end define

" At

Index 432 of page check

lgcdef lgcname of lgcvar At as ""-""! At" enddef

Define tex show of x At as "".[ x ]" {}^@ " end define

lgcdef lgccharge of lgcvar At as "38" enddef

define meta of x At as "At" end define

define unitac of x At as \ u . unitac-At ( u ) end define

" Infer

Index 433 of page check

lgcdef lgcname of lgcvar Infer as ""-""! Infer" enddef

Define tex show of x Infer as "".[ x ]" {}^{\vdash} " end define

lgcdef lgccharge of lgcvar Infer as "38" enddef

define meta of x Infer as "Infer" end define

define unitac of x Infer as \ u . unitac-Infer ( u ) end define

" Endorse

Index 434 of page check

lgcdef lgcname of lgcvar Endorse as ""-""! Endorse" enddef

Define tex show of x Endorse as "".[ x ]" {\makebox[0mm][l]{${}^\vdash$}\,{}^\vdash} " end define

lgcdef lgccharge of lgcvar Endorse as "38" enddef

define meta of x Endorse as "Endorse" end define

define unitac of x Endorse as \ u . unitac-Endorse ( u ) end define

" All

Index 435 of page check

lgcdef lgcname of lgcvar All as ""-""! All" enddef

Define tex show of x All as "".[ x ]" {}^{\Pi} " end define

lgcdef lgccharge of lgcvar All as "38" enddef

define meta of x All as "All" end define

define unitac of x All as \ u . unitac-All ( u ) end define

" Conclude

Index 436 of page check

lgcdef lgcname of lgcvar Conclude as ""-""! Conclude" enddef

Define tex show of x Conclude as "".[ x ]" {}^{\gg}" end define

lgcdef lgccharge of lgcvar Conclude as "38" enddef

define meta of x Conclude as "Conclude" end define

define unitac of x Conclude as \ u . unitac-Conclude ( u ) end define

" Rule

Index 437 of page check

lgcdef lgcname of lgcvar Rule as ""-""! Rule" enddef

lgcdef lgccharge of lgcvar Rule as "38" enddef

define unitac of r Rule as \ u . unitac-Rule ( u ) end define

" at "

Index 438 of page check

lgcdef lgcname of lgcvar at lgcvar as ""-""! at ""!" enddef

Define tex show of x at y as "".[ x ][" \mathrel{@} "[ y ]"".] end define

lgcdef lgccharge of lgcvar at lgcvar as "40" enddef

define meta of x at y as "at" end define

define unitac of x at y as \ u . unitac-at ( u ) end define

define tactic of x at y as \ u . tactic-at ( u ) end define

" ponens "

Index 439 of page check

lgcdef lgcname of lgcvar ponens lgcvar as ""-""! ponens ""!" enddef

Define tex show of x ponens y as "".[ x ][" \rhd "[ y ]"".] end define

lgcdef lgccharge of lgcvar ponens lgcvar as "40" enddef

define meta of x ponens y as "ponens" end define

define unitac of x ponens y as \ u . unitac-ponens ( u ) end define

" probans "

Index 440 of page check

lgcdef lgcname of lgcvar probans lgcvar as ""-""! probans ""!" enddef

Define tex show of x probans y as "".[ x ][" \mathrel{\makebox[0mm][l]{$\rhd$}\,{\rhd}} "[ y ]"".] end define

lgcdef lgccharge of lgcvar probans lgcvar as "40" enddef

define meta of x probans y as "probans" end define

define unitac of x probans y as \ u . unitac-probans ( u ) end define

" verify "

Index 441 of page check

lgcdef lgcname of lgcvar verify lgcvar as ""-""! verify ""!" enddef

Define tex show of x verify y as "".[ x ][" \mathrel{\ast} "[ y ]"".] end define

lgcdef lgccharge of lgcvar verify lgcvar as "40" enddef

define meta of x verify y as "verify" end define

define unitac of x verify y as \ u . unitac-verify ( u ) end define

" p.mp "

Index 442 of page check

lgcdef lgcname of lgcvar p.mp lgcvar as ""-""! p.mp ""!" enddef

Define tex show of x p.mp y as "".[ x ][" \unrhd "[ y ]"".] end define

define macro of x p.mp y as \ x . expand ( quote macro define x p.mp y as [p.MP ponens x] ponens [y Conclude] end define end quote , x ) end define

lgcdef lgccharge of lgcvar p.mp lgcvar as "40" enddef

" infer "

Index 443 of page check

lgcdef lgcname of lgcvar infer lgcvar as ""-""! infer ""!" enddef

Define tex show of x infer y as "".[ x ][" \vdash "[ y ]"".] end define

lgcdef lgccharge of lgcvar infer lgcvar as "41" enddef

define meta of x infer y as "infer" end define

define unitac of x infer y as \ u . unitac-infer ( u ) end define

define tactic of x infer y as \ u . tactic-infer ( u ) end define

" endorse "

Index 444 of page check

lgcdef lgcname of lgcvar endorse lgcvar as ""-""! endorse ""!" enddef

Define tex show of x endorse y as "".[ x ][" \mathrel{\makebox[0mm][l]{$\vdash$}\,{\vdash}} "[ y ]"".] end define

lgcdef lgccharge of lgcvar endorse lgcvar as "41" enddef

define meta of x endorse y as "endorse" end define

define unitac of x endorse y as \ u . unitac-endorse ( u ) end define

define tactic of x endorse y as \ u . tactic-endorse ( u ) end define

" id est "

Index 445 of page check

lgcdef lgcname of lgcvar id est lgcvar as ""-""! id est ""!" enddef

Define tex show of x id est y as "".[ x ][" \mathrel{ie} "[ y ]"".] end define

lgcdef lgccharge of lgcvar id est lgcvar as "41" enddef

define meta of x id est y as "id est" end define

define unitac of x id est y as \ u . unitac-idest ( u ) end define

define tactic of x id est y as \ u . tactic-ie ( u ) end define

All " : "

Index 446 of page check

lgcdef lgcname of All lgcvar : lgcvar as "All ""! : ""!" enddef

Define tex show of All x : y as " \Pi "[ x ][" \colon "[ y ]"".] end define

define macro of All u : v as \ x . expand-All ( x ) end define

lgcdef lgccharge of All lgcvar : lgcvar as "42" enddef

define meta of All x : y as "all" end define

define unitac of All x : y as \ u . unitac-all ( u ) end define

define tactic of All x : y as \ u . tactic-all ( u ) end define

" oplus "

Index 447 of page check

lgcdef lgcname of lgcvar oplus lgcvar as ""-""! oplus ""!" enddef

Define tex show of x oplus y as "".[ x ][" \oplus "[ y ]"".] end define

lgcdef lgccharge of lgcvar oplus lgcvar as "43" enddef

define meta of x oplus y as "plus" end define

" conclude "

Index 448 of page check

lgcdef lgcname of lgcvar conclude lgcvar as ""-""! conclude ""!" enddef

Define tex show of x conclude y as "".[ x ][" \gg "[ y ]"".] end define

lgcdef lgccharge of lgcvar conclude lgcvar as "44" enddef

define meta of x conclude y as "conclude" end define

define unitac of x conclude y as \ u . unitac-conclude ( u ) end define

define tactic of a conclude [a prime] as \ x . unitac ( x ) end define

line " : " >> " ; "

Index 449 of page check

Define tex use of line x : y >> z ; u as " \newline% \makebox[0.1\textwidth]{}% \parbox[b]{0.4\textwidth}{\raggedright% \makebox[0mm][r]{\makebox[0.1\textwidth][l]{$"[ x ]["{:}$}}% $"[ y ][" {} \gg {}$}% \parbox[t]{0.4\textwidth}{\raggedright\setlength{\leftskip}{\indentation}% $"[ z ]["$\hfill \makebox[0mm][l]{\quad ;}} "[ u ]"".]]] end define

lgcdef lgcname of line lgcvar : lgcvar >> lgcvar ; lgcvar as "line ""! : ""! >> ""! ; ""!" enddef

Define tex show of line x : y >> z ; u as " L "[ x ][" \colon "[ y ][" \gg "[ z ][" ; "[ u ]"".]]] end define

define macro of line l : a >> x ; n as \ x . expand ( quote macro define line l : a >> x ; n as Line l : a >> x ; n end define end quote , x ) end define

lgcdef lgccharge of line lgcvar : lgcvar >> lgcvar ; lgcvar as "45" enddef

define locate of line asterisk : asterisk >> asterisk ; asterisk as "line" :: 1 end define

Line " : " >> " ; "

Index 450 of page check

lgcdef lgcname of Line lgcvar : lgcvar >> lgcvar ; lgcvar as "Line ""! : ""! >> ""! ; ""!" enddef

lgcdef lgccharge of Line lgcvar : lgcvar >> lgcvar ; lgcvar as "45" enddef

define tactic of Line l : a >> x ; n as \ u . tactic-conclude-cut ( u ) end define

line " : " >> " ;

Index 451 of page check

Define tex use of line x : y >> z ; as " \newline% \makebox[0.1\textwidth]{}% \parbox[b]{0.4\textwidth}{\raggedright% \makebox[0mm][r]{\makebox[0.1\textwidth][l]{$"[ x ]["{:}$}}% $"[ y ][" {} \gg {}$}% \parbox[t]{0.4\textwidth}{\raggedright\setlength{\leftskip}{\indentation}% $"[ z ]"$\hfill \makebox[0mm][l]{\quad ;}}"]] end define

lgcdef lgcname of line lgcvar : lgcvar >> lgcvar ; as "line ""! : ""! >> ""! ;" enddef

Define tex show of line x : y >> z ; as " L "[ x ][" \colon "[ y ][" \gg "[ z ]" ;"]] end define

define macro of line l : a >> x ; as \ x . expand ( quote macro define line l : a >> x ; as a conclude x end define end quote , x ) end define

lgcdef lgccharge of line lgcvar : lgcvar >> lgcvar ; as "45" enddef

define locate of line asterisk : asterisk >> asterisk ; as "line" :: 1 end define

line " : " >> " qed

Index 452 of page check

Define tex use of line x : y >> z qed as " \newline% \makebox[0.1\textwidth]{}% \parbox[b]{0.4\textwidth}{\raggedright% \makebox[0mm][r]{\makebox[0.1\textwidth][l]{$"[ x ]["{:}$}}% $"[ y ][" {} \gg {}$}% \parbox[t]{0.4\textwidth}{\raggedright\setlength{\leftskip}{\indentation}% $"[ z ]"$\hfill \makebox[0mm][l]{\quad $\Box$}}"]] end define

lgcdef lgcname of line lgcvar : lgcvar >> lgcvar qed as "line ""! : ""! >> ""! qed" enddef

Define tex show of line x : y >> z qed as " L "[ x ][" \colon "[ y ][" \gg "[ z ]" \Box"]] end define

define macro of line l : a >> x qed as \ x . expand ( quote macro define line l : a >> x qed as a conclude x end define end quote , x ) end define

lgcdef lgccharge of line lgcvar : lgcvar >> lgcvar qed as "45" enddef

define locate of line asterisk : asterisk >> asterisk qed as "line" :: 1 end define

line " : Premise >> " ; "

Index 453 of page check

Define tex use of line x : Premise >> z ; u as " \newline% \makebox[0.1\textwidth]{}% \parbox[b]{0.4\textwidth}{\raggedright% \makebox[0mm][r]{\makebox[0.1\textwidth][l]{$"[ x ]["{:}$}}% $Premise {} \gg {}$}% \parbox[t]{0.4\textwidth}{\raggedright\setlength{\leftskip}{\indentation}% $"[ z ]["$\hfill \makebox[0mm][l]{\quad ;}} "[ u ]"".]] end define

lgcdef lgcname of line lgcvar : Premise >> lgcvar ; lgcvar as "line ""! : Premise >> ""! ; ""!" enddef

Define tex show of line x : Premise >> z ; u as " L "[ x ][" \colon Premise \gg "[ z ][" ; "[ u ]"".]] end define

define macro of line l : Premise >> x ; n as \ x . expand ( quote macro define line l : Premise >> x ; n as Line l : Premise >> x ; n end define end quote , x ) end define

lgcdef lgccharge of line lgcvar : Premise >> lgcvar ; lgcvar as "45" enddef

define locate of line asterisk : Premise >> asterisk ; asterisk as "line" :: 1 end define

Line " : Premise >> " ; "

Index 454 of page check

lgcdef lgcname of Line lgcvar : Premise >> lgcvar ; lgcvar as "Line ""! : Premise >> ""! ; ""!" enddef

lgcdef lgccharge of Line lgcvar : Premise >> lgcvar ; lgcvar as "45" enddef

define tactic of Line l : Premise >> x ; n as \ u . tactic-premise-line ( u ) end define

line " : Condition >> " ; "

Index 455 of page check

Define tex use of line x : Condition >> z ; u as " \newline% \makebox[0.1\textwidth]{}% \parbox[b]{0.4\textwidth}{\raggedright% \makebox[0mm][r]{\makebox[0.1\textwidth][l]{$"[ x ]["{:}$}}% $Condition {} \gg {}$}% \parbox[t]{0.4\textwidth}{\raggedright\setlength{\leftskip}{\indentation}% $"[ z ]["$\hfill \makebox[0mm][l]{\quad ;}} "[ u ]"".]] end define

lgcdef lgcname of line lgcvar : Condition >> lgcvar ; lgcvar as "line ""! : Condition >> ""! ; ""!" enddef

Define tex show of line x : Condition >> z ; u as " L "[ x ][" \colon Condition \gg "[ z ][" ; "[ u ]"".]] end define

define macro of line l : Condition >> x ; n as \ x . expand ( quote macro define line l : Condition >> x ; n as Line l : Condition >> x ; n end define end quote , x ) end define

lgcdef lgccharge of line lgcvar : Condition >> lgcvar ; lgcvar as "45" enddef

define locate of line asterisk : Condition >> asterisk ; asterisk as "line" :: 1 end define

Line " : Condition >> " ; "

Index 456 of page check

lgcdef lgcname of Line lgcvar : Condition >> lgcvar ; lgcvar as "Line ""! : Condition >> ""! ; ""!" enddef

lgcdef lgccharge of Line lgcvar : Condition >> lgcvar ; lgcvar as "45" enddef

define tactic of Line l : Condition >> x ; n as \ u . tactic-condition-line ( u ) end define

line " : Arbitrary >> " ; "

Index 457 of page check

Define tex use of line x : Arbitrary >> z ; u as " \newline% \makebox[0.1\textwidth]{}% \parbox[b]{0.4\textwidth}{\raggedright% \makebox[0mm][r]{\makebox[0.1\textwidth][l]{$"[ x ]["{:}$}}% $Arbitrary {} \gg {}$}% \parbox[t]{0.4\textwidth}{\raggedright\setlength{\leftskip}{\indentation}% $"[ z ]["$\hfill \makebox[0mm][l]{\quad ;}} "[ u ]"".]] end define

lgcdef lgcname of line lgcvar : Arbitrary >> lgcvar ; lgcvar as "line ""! : Arbitrary >> ""! ; ""!" enddef

Define tex show of line x : Arbitrary >> z ; u as " L "[ x ][" \colon Arbitrary \gg "[ z ][" ; "[ u ]"".]] end define

define macro of line l : Arbitrary >> x ; n as \ x . expand ( quote macro define line l : Arbitrary >> x ; n as All x : n end define end quote , x ) end define

lgcdef lgccharge of line lgcvar : Arbitrary >> lgcvar ; lgcvar as "45" enddef

define locate of line asterisk : Arbitrary >> asterisk ; asterisk as "line" :: 1 end define

line " : Local >> " = " ; "

Index 458 of page check

Define tex use of line x : Local >> y = z ; u as " \newline% \makebox[0.1\textwidth]{}% \parbox[b]{0.4\textwidth}{\raggedright% \makebox[0mm][r]{\makebox[0.1\textwidth][l]{$"[ x ]["{:}$}}% $Local {} \gg {}$}% \parbox[t]{0.4\textwidth}{\raggedright\setlength{\leftskip}{\indentation}% $"[ y ][" \mathrel{\ddot{=}} "[ z ]["$\hfill \makebox[0mm][l]{\quad ;}} "[ u ]"".]]] end define

lgcdef lgcname of line lgcvar : Local >> lgcvar = lgcvar ; lgcvar as "line ""! : Local >> ""! = ""! ; ""!" enddef

Define tex show of line x : Local >> y = z ; u as " L "[ x ][" \colon Local \gg "[ y ][" \mathrel{\ddot{=}} "[ z ][" ; "[ u ]"".]]] end define

define macro of line l : Local >> x = y ; n as \ x . expand ( quote macro define line l : Local >> x = y ; n as let x := y in n end define end quote , x ) end define

lgcdef lgccharge of line lgcvar : Local >> lgcvar = lgcvar ; lgcvar as "45" enddef

define locate of line asterisk : Local >> asterisk = asterisk ; asterisk as "line" :: 1 end define

line " : Block >> Begin ; " line " : Block >> End ; "

Index 459 of page check

Define tex use of line x : Block >> Begin ; y line z : Block >> End ; u as " \newline% \makebox[0.1\textwidth]{}% \parbox[b]{0.4\textwidth}{\raggedright% \makebox[0mm][r]{\makebox[0.1\textwidth][l]{$"[ x ]["{:}$}}% $Block {} \gg {}$}% \parbox[t]{0.4\textwidth}{\raggedright\setlength{\leftskip}{\indentation}% $Begin$\hfill \makebox[0mm][l]{\quad ;}}\addtolength{\indentation}{1em} "[ y ][" \newline\addtolength{\indentation}{-1em}% \makebox[0.1\textwidth]{}% \parbox[b]{0.4\textwidth}{\raggedright% \makebox[0mm][r]{\makebox[0.1\textwidth][l]{$"[ z ]["{:}$}}% $Block {} \gg {}$}% \parbox[t]{0.4\textwidth}{\raggedright\setlength{\leftskip}{\indentation}% $End$\hfill \makebox[0mm][l]{\quad ;}} "[ u ]"".]]] end define

lgcdef lgcname of line lgcvar : Block >> Begin ; lgcvar line lgcvar : Block >> End ; lgcvar as "line ""! : Block >> Begin ; ""! line ""! : Block >> End ; ""!" enddef

Define tex show of line x : Block >> Begin ; y line z : Block >> End ; u as " L "[ x ][" \colon Block \gg Begin ; \quad "[ y ][" \quad L "[ z ][" \colon Block \gg End ; "[ u ]"".]]] end define

define macro of line l : Block >> Begin ; x line k : Block >> End ; n as \ x . expand ( quote macro define line l : Block >> Begin ; x line k : Block >> End ; n as Line l : Block >> Begin ; x line k : Block >> End ; n end define end quote , x ) end define

lgcdef lgccharge of line lgcvar : Block >> Begin ; lgcvar line lgcvar : Block >> End ; lgcvar as "45" enddef

define locate of line asterisk : Block >> Begin ; asterisk line asterisk : Block >> End ; asterisk as "line" :: 3 end define

Line " : Block >> Begin ; " line " : Block >> End ; "

Index 460 of page check

lgcdef lgcname of Line lgcvar : Block >> Begin ; lgcvar line lgcvar : Block >> End ; lgcvar as "Line ""! : Block >> Begin ; ""! line ""! : Block >> End ; ""!" enddef

lgcdef lgccharge of Line lgcvar : Block >> Begin ; lgcvar line lgcvar : Block >> End ; lgcvar as "45" enddef

define tactic of Line l : Block >> Begin ; x line k : Block >> End ; n as \ u . tactic-block ( u ) end define

" ;; "

Index 461 of page check

lgcdef lgcname of lgcvar ;; lgcvar as ""-""! ;; ""!" enddef

Define tex show of x ;; y as "".[ x ][" ; "[ y ]"".] end define

lgcdef lgccharge of lgcvar ;; lgcvar as "47" enddef

define meta of x ;; y as "cut" end define

define unitac of x ;; y as \ u . unitac-cut ( u ) end define

define tactic of x ;; y as \ u . tactic-cut ( u ) end define

" proves "

Index 462 of page check

lgcdef lgcname of lgcvar proves lgcvar as ""-""! proves ""!" enddef

lgcdef lgccharge of lgcvar proves lgcvar as "48" enddef

axiom " : " end axiom

Index 463 of page check

Define tex use of axiom x : y end axiom as " \addvspace{\abovedisplayskip} \noindent $\mathbf{Axiom\ }"[ x ][" \colon "[ y ]" \;\Box$ \addvspace{\belowdisplayskip}"] end define

lgcdef lgcname of axiom lgcvar : lgcvar end axiom as "axiom ""! : ""! end axiom" enddef

Define tex show of axiom x : y end axiom as " \mathbf{Axiom\ }"[ x ][" \colon "[ y ]" \;\Box"] end define

define macro of axiom x : y end axiom as \ x . expand ( quote macro define axiom x : y end axiom as ensure math define statement of x as y end define,unitac define x as \ u . unitac-rule ( u ) end define end math end define end quote , x ) end define

lgcdef lgccharge of axiom lgcvar : lgcvar end axiom as "49" enddef

rule " : " end rule

Index 464 of page check

Define tex use of rule x : y end rule as " \addvspace{\abovedisplayskip} \noindent $\mathbf{Rule\ }"[ x ][" \colon "[ y ]" \;\Box$ \addvspace{\belowdisplayskip}"] end define

lgcdef lgcname of rule lgcvar : lgcvar end rule as "rule ""! : ""! end rule" enddef

Define tex show of rule x : y end rule as " \mathbf{Rule\ }"[ x ][" \colon "[ y ]" \;\Box"] end define

define macro of rule x : y end rule as \ x . expand ( quote macro define rule x : y end rule as ensure math define statement of x as y end define,unitac define x as \ u . unitac-rule ( u ) end define end math end define end quote , x ) end define

lgcdef lgccharge of rule lgcvar : lgcvar end rule as "49" enddef

theory " : " end theory

Index 465 of page check

Define tex use of theory x : y end theory as " \addvspace{\abovedisplayskip} \noindent $\mathbf{Theory\ }"[ x ][" \colon "[ y ]" \;\Box$ \addvspace{\belowdisplayskip}"] end define

lgcdef lgcname of theory lgcvar : lgcvar end theory as "theory ""! : ""! end theory" enddef

Define tex show of theory x : y end theory as " \mathbf{Theory\ }"[ x ][" \colon "[ y ]" \;\Box"] end define

define macro of theory x : y end theory as \ x . expand ( quote macro define theory x : y end theory as ensure math define statement of x as y end define end math end define end quote , x ) end define

lgcdef lgccharge of theory lgcvar : lgcvar end theory as "49" enddef

lemma " : " end lemma

Index 466 of page check

Define tex use of lemma x : y end lemma as " \addvspace{\abovedisplayskip} \noindent $\mathbf{Lemma\ }"[ x ][" \colon "[ y ]" \;\Box$ \addvspace{\belowdisplayskip}"] end define

lgcdef lgcname of lemma lgcvar : lgcvar end lemma as "lemma ""! : ""! end lemma" enddef

Define tex show of lemma x : y end lemma as " \mathbf{Lemma\ }"[ x ][" \colon "[ y ]" \;\Box"] end define

define macro of lemma x : y end lemma as \ x . expand ( quote macro define lemma x : y end lemma as ensure math statement define x as y end define end math end define end quote , x ) end define

lgcdef lgccharge of lemma lgcvar : lgcvar end lemma as "49" enddef

" lemma " : " end lemma

Index 467 of page check

Define tex use of x lemma y : z end lemma as " \addvspace{\abovedisplayskip} \noindent $"[ x ][" \mathbf{\ lemma\ }"[ y ][" \colon "[ z ]" \;\Box$ \addvspace{\belowdisplayskip}"]] end define

lgcdef lgcname of lgcvar lemma lgcvar : lgcvar end lemma as ""-""! lemma ""! : ""! end lemma" enddef

Define tex show of x lemma y : z end lemma as "".[ x ][" \mathbf{\ lemma\ }"[ y ][" \colon "[ z ]" \;\Box"]] end define

define macro of x lemma y : z end lemma as \ x . expand ( quote macro define x lemma y : z end lemma as ensure math statement define y as x infer z end define,unitac define y as \ u . unitac-lemma ( u ) end define end math end define end quote , x ) end define

lgcdef lgccharge of lgcvar lemma lgcvar : lgcvar end lemma as "49" enddef

proof of " : "

Index 468 of page check

Define tex use of proof of x : y as " \addvspace{\abovedisplayskip} \noindent $\mathbf{Proof\ of\ }"[ x ][" \colon "[ y ]"$ \addvspace{\belowdisplayskip}"] end define

lgcdef lgcname of proof of lgcvar : lgcvar as "proof of ""! : ""!" enddef

Define tex show of proof of x : y as " \mathbf{Proof\ of\ }"[ x ][" \colon "[ y ]"".] end define

define macro of proof of x : y as \ x . expand ( quote macro define proof of x : y as ensure math define proof of x as \ p . \ c . taceval ( quote y end quote , tacstate0 , c ) end define end math end define end quote , x ) end define

lgcdef lgccharge of proof of lgcvar : lgcvar as "49" enddef

define locate of proof of x : y as "proof" :: 1 end define

" proof of " : "

Index 469 of page check

Define tex use of x proof of y : z as " \addvspace{\abovedisplayskip} \noindent $"[ x ][" \mathbf{\ proof\ of\ }"[ y ][" \colon "[ z ]"$ \addvspace{\belowdisplayskip}"]] end define

lgcdef lgcname of lgcvar proof of lgcvar : lgcvar as ""-""! proof of ""! : ""!" enddef

Define tex show of x proof of y : z as "".[ x ][" \mathbf{\ proof\ of\ }"[ y ][" \colon "[ z ]"".]] end define

define macro of x proof of y : z as \ x . expand ( quote macro define x proof of y : z as ensure math define proof of y as \ p . \ c . taceval1 ( quote x end quote , quote z end quote , c ) end define end math end define end quote , x ) end define

lgcdef lgccharge of lgcvar proof of lgcvar : lgcvar as "49" enddef

define locate of x proof of y : z as "proof" :: 2 end define

dbug ( " ) "

Index 470 of page check

lgcdef lgcname of dbug ( lgcvar ) lgcvar as "dbug ( ""! ) ""!" enddef

define value of dbug ( x ) y as norm [x is val : [y is val : if y debug != true then y else [make-root ( x , y ) :: dbug* ( x ) [y tail]]]] end define

lgcdef lgccharge of dbug ( lgcvar ) lgcvar as "51" enddef

dbug* ( " ) "

Index 471 of page check

lgcdef lgcname of dbug* ( lgcvar ) lgcvar as "dbug* ( ""! ) ""!" enddef

define value of dbug* ( x ) y as norm [x is val : [y is val : if y then true else [[dbug ( x ) [y head]] :: dbug* ( x ) [y tail]]]] end define

lgcdef lgccharge of dbug* ( lgcvar ) lgcvar as "51" enddef

glue ( " ) "

Index 472 of page check

lgcdef lgcname of glue ( lgcvar ) lgcvar as "glue ( ""! ) ""!" enddef

Define tex show of glue ( x ) y as " glue\linebreak [0]\ (\linebreak [0]\ "[ texshow x end texshow ][" \linebreak [0]\ )\linebreak [0]\ "[ y ]"".] end define

define value of glue ( x ) y as norm [x is val : [y is val : [make-root ( true , show quote glue' ( x ) y end quote end show ) :: [make-string ( true , x ) :: [y :: <<>>]]]]] end define

lgcdef lgccharge of glue ( lgcvar ) lgcvar as "51" enddef

diag ( " ) "

Index 473 of page check

lgcdef lgcname of diag ( lgcvar ) lgcvar as "diag ( ""! ) ""!" enddef

Define tex show of diag ( x ) y as " diag\linebreak [0]\ (\linebreak [0]\ "[ texshow x end texshow ][" \linebreak [0]\ )\linebreak [0]\ "[ y ]"".] end define

define value of diag ( x ) y as norm [x is val : [y is val : [make-root ( true , show quote diag' ( x ) y end quote end show ) :: [make-string ( true , x ) :: [y :: <<>>]]]]] end define

lgcdef lgccharge of diag ( lgcvar ) lgcvar as "51" enddef

disp ( " ) "

Index 474 of page check

lgcdef lgcname of disp ( lgcvar ) lgcvar as "disp ( ""! ) ""!" enddef

define value of disp ( x ) y as norm [x is val : [y is val : [make-root ( true , show quote disp' ( x ) y end quote end show ) :: [x :: [y :: <<>>]]]]] end define

lgcdef lgccharge of disp ( lgcvar ) lgcvar as "51" enddef

form ( " ) "

Index 475 of page check

lgcdef lgcname of form ( lgcvar ) lgcvar as "form ( ""! ) ""!" enddef

define value of form ( x ) y as norm [x is val : [y is val : [make-root ( true , show quote form' ( x ) y end quote end show ) :: [x :: [y :: <<>>]]]]] end define

lgcdef lgccharge of form ( lgcvar ) lgcvar as "51" enddef

glue' ( " ) "

Index 476 of page check

Define tex use of glue' ( x ) y as "".[ x ]["".[ y ]"".] end define

lgcdef lgcname of glue' ( lgcvar ) lgcvar as "glue' ( ""! ) ""!" enddef

lgcdef lgccharge of glue' ( lgcvar ) lgcvar as "51" enddef

dbug' ( " ) "

Index 477 of page check

lgcdef lgcname of dbug' ( lgcvar ) lgcvar as "dbug' ( ""! ) ""!" enddef

lgcdef lgccharge of dbug' ( lgcvar ) lgcvar as "51" enddef

diag' ( " ) "

Index 478 of page check

Define tex use of diag' ( x ) y as " "[ x ][" "[ y ]"".] end define

lgcdef lgcname of diag' ( lgcvar ) lgcvar as "diag' ( ""! ) ""!" enddef

lgcdef lgccharge of diag' ( lgcvar ) lgcvar as "51" enddef

disp' ( " ) "

Index 479 of page check

Define tex use of disp' ( x ) y as " \begin{quotation} \noindent $ "[ x ][" $ \end{quotation} "[ y ]"".] end define

lgcdef lgcname of disp' ( lgcvar ) lgcvar as "disp' ( ""! ) ""!" enddef

lgcdef lgccharge of disp' ( lgcvar ) lgcvar as "51" enddef

form' ( " ) "

Index 480 of page check

Define tex use of form' ( x ) y as " $ "[ x ][" $"[ y ]"".] end define

lgcdef lgcname of form' ( lgcvar ) lgcvar as "form' ( ""! ) ""!" enddef

lgcdef lgccharge of form' ( lgcvar ) lgcvar as "51" enddef

LocateProofLine ( " , " ) "

Index 481 of page check

lgcdef lgcname of LocateProofLine ( lgcvar , lgcvar ) lgcvar as "LocateProofLine ( ""! , ""! ) ""!" enddef

define value of LocateProofLine ( v , c ) y as norm [v is val : [c is val : [y is val : LET Locate ( v , "proof" , c ) BE [asterisk IN LET asterisk BE [p IN LET Locate ( v , "line" , c ) BE [asterisk IN LET asterisk BE [l IN if [.not. p] .and. .not. l then dbug ( v ) diag ( "Line" ) form ( nth ( l tail , l head ) ) diag ( "in proof of" ) form ( nth ( p tail , p head ) ) glue ( ":\newline " ) y else if .not. p then dbug ( v ) diag ( "In proof of" ) form ( nth ( p tail , p head ) ) glue ( ":\newline " ) y else dbug ( v ) diag ( "Cannot locate error." ) diag ( "Look at ``macro'' and ``locate'' definitions." ) diag ( "". ) y]]]]]]] end define

lgcdef lgccharge of LocateProofLine ( lgcvar , lgcvar ) lgcvar as "51" enddef

Charges

0

base
check
alpha
beta
gamma
delta
epsilon
varepsilon
zeta
eta
theta
vartheta
iota
kappa
lambda
mu
nu
xi
pi
varpi
rho
varrho
sigma
varsigma
tau
upsilon
phi
chi
psi
omega
Gamma
Delta
Theta
Lambda
Xi
Pi
Sigma
Upsilon
Phi
Psi
Omega
cla
clb
clc
cld
cle
clf
clg
clh
cli
clj
clk
cll
clm
cln
clo
clp
clq
clr
cls
clt
clu
clv
clw
clx
cly
clz
statement
proof
meta
math
tactic
unitac
locate
statement define " as " end define
proof define " as " end define
meta define " as " end define
math define " as " end define
tactic define " as " end define
unitac define " as " end define
locate define " as " end define
#a
#b
#c
#d
#e
#f
#g
#h
#i
#j
#k
#l
#m
#n
#o
#p
#q
#r
#s
#t
#u
#v
#w
#x
#y
#z
tacfresh ( " )
unifresh ( " , " )
L00
L01
L02
L03
L04
L05
L06
L07
L08
L09
L10
L11
L12
L13
L14
L15
L16
L17
L18
L19
L20
L21
L22
L23
L24
L25
L26
L27
L28
L29
L30
L31
L32
L33
L34
L35
L36
L37
L38
L39
L40
L41
L42
L43
L44
L45
L46
L47
L48
L49
L50
L51
L52
L53
L54
L55
L56
L57
L58
L59
L60
L61
L62
L63
L64
L65
L66
L67
L68
L69
L70
L71
L72
L73
L74
L75
L76
L77
L78
L79
L80
L81
L82
L83
L84
L85
L86
L87
L88
L89
L90
L91
L92
L93
L94
L95
L96
L97
L98
L99
False
p.A1
p.A2
p.A3
p.MP
p.Prop
p.IProp
distinctvar ( " , " )
metaavoid1 ( " , " , " )
metaavoid1* ( " , " , " )
objectavoid1 ( " , " , " , " )
objectavoid1* ( " , " , " , " )
metafree ( " , " , " , " )
metafree* ( " , " , " , " )
objectfree ( " , " , " , " )
objectfree* ( " , " , " , " )
remove ( " , " )
metaavoid2* ( " , " , " )
metasubst ( " , " , " )
metasubst* ( " , " , " )
metasubstc ( " , " , " )
metasubstc1 ( " , " , " , " )
metasubstc1* ( " , " , " , " )
metasubstc2 ( " , " , " , " )
metasubstc2* ( " , " , " , " )
metasubstc3 ( " , " , " , " )
expand-All ( " )
expand-All1 ( " , " , " )
make-string ( " , " )
end diagnose
Locate ( " , " , " )
Locate1 ( " , " , " , " , " )
error ( " , " )
mismatch ( " , " , " )
mismatch* ( " , " , " )
eval-Init ( " , " )
eval-Ponens ( " , " , " )
eval-Probans ( " , " , " )
eval-Verify ( " , " , " )
eval-Curry ( " , " , " )
eval-Uncurry ( " , " , " )
eval-Deref ( " , " , " )
eval-at ( " , " , " )
eval-at1 ( " , " , " , " , " )
eval-infer ( " , " , " , " )
eval-endorse ( " , " , " , " )
eval-ie ( " , " , " , " )
eval-all ( " , " , " , " )
eval-cut ( " , " , " )
seqeval ( " , " )
Repeat
prepare proof indentation
claiming ( " , " )
proofcheck
proofcheck1 ( " )
proofcheck2 ( " )
seqeval* ( " , " )
premisecheck* ( " , " )
checked ( " , " )
premisecheck ( " , " )
circularitycheck1 ( " , " , " , " )
circularitycheck2 ( " , " , " , " )
circularitycheck2* ( " , " , " , " )
lemma1
lemma2
lemma2a
lemma2b
lemma2c
lemma2d
lemma2e
lemma2f
lemma3
lemma4a
lemma4b
lemma4c
lemma4d
lemma4e
lemma4f
lemma4g
int2string ( " , " )
int2string1 ( " , " )
val2term ( " , " )
card2term ( " , " )
univar ( " , " , " )
pterm ( " , " )
pterm1 ( " , " , " , " )
pterm2 ( " , " , " )
pterm2* ( " , " , " )
inst ( " , " , " )
inst* ( " , " , " )
occur ( " , " , " )
occur* ( " , " , " )
unify ( " , " , " )
unify* ( " , " , " )
unify2 ( " , " , " )
taceval ( " , " , " )
taceval1 ( " , " , " )
tacstate0
unitac0
tactic-push ( " , " , " )
tactic-pop ( " , " )
tactic-Init ( " )
tactic-Ponens ( " )
tactic-Probans ( " )
tactic-Verify ( " )
tactic-Curry ( " )
tactic-Uncurry ( " )
tactic-Deref ( " )
tactic-at ( " )
tactic-at1 ( " , " , " , " )
tactic-at2 ( " , " , " , " , " )
tactic-infer ( " )
tactic-endorse ( " )
tactic-ie ( " )
tactic-all ( " )
tactic-cut ( " )
tactic-cut1 ( " , " , " )
hook-arg
hook-res
hook-idx
hook-uni
hook-pre
hook-cond
hook-parm
hook-unitac
hook-rule
hook-lemma
hook-conclude
unitac ( " )
unitac1 ( " , " , " )
unieval ( " , " , " )
unitac-Init ( " )
unitac-Conclude ( " )
unitac-conclude ( " )
unitac-conclude-std ( " )
unitac-Ponens ( " )
unitac-ponens ( " )
unitac-Probans ( " )
unitac-probans ( " )
unitac-Verify ( " )
unitac-verify ( " )
unitac-Curry ( " )
unitac-Uncurry ( " )
unitac-Deref ( " )
unitac-idest ( " )
unitac-At ( " )
unitac-at ( " )
unitac-Infer ( " )
unitac-infer ( " )
unitac-Endorse ( " )
unitac-endorse ( " )
unitac-All ( " )
unitac-all ( " )
unitac-cut ( " )
unitac-adapt ( " , " , " )
unitac-rule ( " )
unitac-rule-std ( " )
unitac-theo ( " , " , " )
unitac-rule0 ( " , " , " )
unitac-rule-plus ( " , " , " )
unitac-rule-stmt ( " , " , " , " )
unitac-rule1 ( " , " , " )
unitac-rule2 ( " , " , " )
unitac-search ( " , " , " )
unitac-search1 ( " , " , " , " , " )
unitac-rule3 ( " , " )
unitac-rule4 ( " , " )
unitac-rule5 ( " , " , " , " )
unitac-stack ( " , " , " )
unitac-lemma ( " )
unitac-lemma-std ( " )
unitac-Rule ( " )
seqcnt ( " , " )
tactic-conclude-cut ( " )
tactic-premise-line ( " )
tactic-condition-line ( " )
tactic-block ( " )
System S
S.S1
S.S5
S.reflexivity

2

+"

4

" factorial
"#
" plist ( " )
" def ( " , " )
" lhs ( " , " )
" rhs ( " , " )
" metadef ( " )
" metavar ( " )
" stmt-rhs ( " )
" proof-rhs ( " )
" tactic-rhs ( " )
" unitac-rhs ( " )
" locate-rhs ( " )
" mathdef ( " )
" valuedef ( " )
" objectvar ( " )
" objectlambda ( " )
" objectquote ( " )
" objectterm ( " )
" objectterm* ( " )
" metaterm ( " )
" metaterm* ( " )
" metaavoid ( " ) "
" metaavoid* ( " ) "
" objectavoid ( " ) "
" objectavoid* ( " ) "

6

" ' "

8

- "

10

" Times "

12

" Plus "
" set+ "
" set- "
" set-- "
" union "

14

PlusTag "

16

" div "

17

" LazyPair "

19

" ,, "

20

" = "
" member "
" subset "
" set= "
" sequent= "

22

Not "
p.not "

24

" And "

26

" Or "

29

" Iff "
" p.imply "

30

" Select " else " end select

32

\ " . "
metadeclare "

33

norm "

34

" reduce to "

38

" Init
" Ponens
" Probans
" Verify
" Curry
" Uncurry
" Deref
" At
" Infer
" Endorse
" All
" Conclude
" Rule

40

" at "
" ponens "
" probans "
" verify "
" p.mp "

41

" infer "
" endorse "
" id est "

42

All " : "

43

" oplus "

44

" conclude "

45

line " : " >> " ; "
Line " : " >> " ; "
line " : " >> " ;
line " : " >> " qed
line " : Premise >> " ; "
Line " : Premise >> " ; "
line " : Condition >> " ; "
Line " : Condition >> " ; "
line " : Arbitrary >> " ; "
line " : Local >> " = " ; "
line " : Block >> Begin ; " line " : Block >> End ; "
Line " : Block >> Begin ; " line " : Block >> End ; "

47

" ;; "

48

" proves "

49

axiom " : " end axiom
rule " : " end rule
theory " : " end theory
lemma " : " end lemma
" lemma " : " end lemma
proof of " : "
" proof of " : "

50

" endline

51

" lgcthen "
dbug ( " ) "
dbug* ( " ) "
glue ( " ) "
diag ( " ) "
disp ( " ) "
form ( " ) "
glue' ( " ) "
dbug' ( " ) "
diag' ( " ) "
disp' ( " ) "
form' ( " ) "
LocateProofLine ( " , " ) "

52

" linebreak "

54

" & "

56

" \\ "

The Logiweb compiler (lgc) GRD-2009-11-28.UTC:11:16:43.699221