Logiweb(TM)

Logiweb extract of base

Up Help

Table of contents

Date of publication
Bibliography
Definitions
Charges

Date of publication

GRD-2009-11-13.UTC:08:44:26.210720 (Gregorian Date / Universal Coordinated Time)
MJD-55148.TAI:08:45:00.210720 (Modified Julian Day / International Atomic Time)
LGT-4764818700210720e-6 (Logiweb Time)

Bibliography

[0] base (01AB1F51C8C17606A5C0331B5689B4858C796547B9A0A4AEF0BCB2BB0806)

Definitions

base

Index 0 of page base

lgcdef lgcname of base as "base" enddef

define value of base as 2 + 3 end define

define claim of base as test1 end define

define macro of base as macro1 end define

lgcdef lgccharge of base as "0" enddef

proclaim " as " end proclaim

Index 1 of page base

lgcdef lgcname of proclaim lgcvar as lgcvar end proclaim as "proclaim ""! as ""! end proclaim" enddef

Define tex show of proclaim x as y end proclaim as " [ "[ texshow x end texshow ][" \bowtie "[ texshow y end texshow ]" ]"] end define

lgcdef lgccharge of proclaim lgcvar as lgcvar end proclaim as "0" enddef

Proclamed meaning: "proclaim"

lgcend

Index 2 of page base

Define tex use of lgcend as "\mbox{}" end define

lgcdef lgcname of lgcend as "lgcend" enddef

lgcdef lgccharge of lgcend as "0" enddef

lgcvar

Index 3 of page base

lgcdef lgcname of lgcvar as "lgcvar" enddef

Define tex show of lgcvar as " \mbox{\tt\char34}" end define

lgcdef lgccharge of lgcvar as "0" enddef

lgcdef " of " as " enddef

Index 4 of page base

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

Define tex show of lgcdef x of y as z enddef as " [ def \linebreak [0]\ "[ x ][" \linebreak [0]\ of \linebreak [0]\ "[ texshow y end texshow ][" \linebreak [0]\ as \linebreak [0]\ "[ texshow z end texshow ]" ]"]] end define

lgcdef lgccharge of lgcdef lgcvar of lgcvar as lgcvar enddef as "0" enddef

Proclamed meaning: "define"

lgcname

Index 5 of page base

Define tex use of lgcname as " name" end define

lgcdef lgcname of lgcname as "lgcname" enddef

lgcdef lgccharge of lgcname as "0" enddef

Define message of lgcname as "name" end define

lgccharge

Index 6 of page base

Define tex use of lgccharge as " charge" end define

lgcdef lgcname of lgccharge as "lgccharge" enddef

lgcdef lgccharge of lgccharge as "0" enddef

Define message of lgccharge as "charge" end define

empty

Index 7 of page base

Define tex use of empty as "". end define

lgcdef lgcname of empty as "empty" enddef

lgcdef lgccharge of empty as "0" enddef

preassociative " greater than "

Index 8 of page base

Define tex use of preassociative x greater than y as " \newline \mathbf {Preassociative} \newline "[ x ][" ; "[ y ]"".] end define

lgcdef lgcname of preassociative lgcvar greater than lgcvar as "preassociative ""! greater than ""!" enddef

Define tex show of preassociative x greater than y as " \mathbf{Preassociative}\,"[ x ][" ; "[ y ]"".] end define

lgcdef lgccharge of preassociative lgcvar greater than lgcvar as "0" enddef

Define priority of preassociative x greater than y as "pre" end define

postassociative " greater than "

Index 9 of page base

Define tex use of postassociative x greater than y as " \newline\mathbf{Postassociative} \newline "[ x ][" ; "[ y ]"".] end define

lgcdef lgcname of postassociative lgcvar greater than lgcvar as "postassociative ""! greater than ""!" enddef

Define tex show of postassociative x greater than y as " \mathbf{Postassociative}\,"[ x ][" ; "[ y ]"".] end define

lgcdef lgccharge of postassociative lgcvar greater than lgcvar as "0" enddef

Define priority of postassociative x greater than y as "post" end define

priority " equal "

Index 10 of page base

Define tex use of priority x equal y as " ["[ texshow x end texshow ][" ] , \linebreak [0] "[ y ]"".] end define

lgcdef lgcname of priority lgcvar equal lgcvar as "priority ""! equal ""!" enddef

Define tex show of priority x equal y as " ["[ x ][" ] , \linebreak [0] "[ y ]"".] end define

lgcdef lgccharge of priority lgcvar equal lgcvar as "0" enddef

priority " end priority

Index 11 of page base

Define tex use of priority x end priority as " ["[ texshow x end texshow ]" ]" end define

lgcdef lgcname of priority lgcvar end priority as "priority ""! end priority" enddef

Define tex show of priority x end priority as " priority \ "[ x ]" \ end" end define

lgcdef lgccharge of priority lgcvar end priority as "0" enddef

asterisk

Index 12 of page base

lgcdef lgcname of asterisk as "asterisk" enddef

Define tex show of asterisk as " \ast " end define

lgcdef lgccharge of asterisk as "0" enddef

name

Index 13 of page base

lgcdef lgcname of name as "name" enddef

Define tex show of name as " name" end define

lgcdef lgccharge of name as "0" enddef

Define message of name as "name" end define

Define " of " as " end define

Index 14 of page base

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

Define tex show of Define x of y as z end define as " [ "[ texshow y end texshow ][" \stackrel{"[ texshow x end texshow ][" !}{\rightarrow}"[ texshow z end texshow ]" ]"]] end define

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

Proclamed meaning: "define"

math " end math

Index 15 of page base

Define tex use of math x end math as "$"[ x ]"$" end define

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

Define tex show of math x end math as " \ \$"[ x ]"\$\linebreak[0]\ " end define

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

display math " end math

Index 16 of page base

Define tex use of display math x end math as "$$"[ x ]"$$" end define

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

Define tex show of display math x end math as " \ \$\$"[ x ]"\$\$\linebreak[0]\ " end define

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

ensure math " end math

Index 17 of page base

Define tex use of ensure math x end math as " \ensuremath{ "[ x ]" }" end define

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

Define tex show of ensure math x end math as " \backslash ensuremath \{ "[ x ]" \}" end define

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

make math " end math

Index 18 of page base

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

define value of make math x end math as norm [x is val : [[show quote math x end math end quote end show ref :: [show quote math x end math end quote end show idx :: [x debug]]] :: [x :: true]]] end define

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

a

Index 19 of page base

lgcdef lgcname of a as "a" enddef

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

lgcdef lgccharge of a as "0" enddef

b

Index 20 of page base

lgcdef lgcname of b as "b" enddef

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

lgcdef lgccharge of b as "0" enddef

c

Index 21 of page base

lgcdef lgcname of c as "c" enddef

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

lgcdef lgccharge of c as "0" enddef

d

Index 22 of page base

lgcdef lgcname of d as "d" enddef

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

lgcdef lgccharge of d as "0" enddef

e

Index 23 of page base

lgcdef lgcname of e as "e" enddef

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

lgcdef lgccharge of e as "0" enddef

f

Index 24 of page base

lgcdef lgcname of f as "f" enddef

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

lgcdef lgccharge of f as "0" enddef

g

Index 25 of page base

lgcdef lgcname of g as "g" enddef

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

lgcdef lgccharge of g as "0" enddef

h

Index 26 of page base

lgcdef lgcname of h as "h" enddef

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

lgcdef lgccharge of h as "0" enddef

i

Index 27 of page base

lgcdef lgcname of i as "i" enddef

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

lgcdef lgccharge of i as "0" enddef

j

Index 28 of page base

lgcdef lgcname of j as "j" enddef

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

lgcdef lgccharge of j as "0" enddef

k

Index 29 of page base

lgcdef lgcname of k as "k" enddef

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

lgcdef lgccharge of k as "0" enddef

l

Index 30 of page base

lgcdef lgcname of l as "l" enddef

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

lgcdef lgccharge of l as "0" enddef

m

Index 31 of page base

lgcdef lgcname of m as "m" enddef

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

lgcdef lgccharge of m as "0" enddef

n

Index 32 of page base

lgcdef lgcname of n as "n" enddef

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

lgcdef lgccharge of n as "0" enddef

o

Index 33 of page base

lgcdef lgcname of o as "o" enddef

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

lgcdef lgccharge of o as "0" enddef

p

Index 34 of page base

lgcdef lgcname of p as "p" enddef

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

lgcdef lgccharge of p as "0" enddef

q

Index 35 of page base

lgcdef lgcname of q as "q" enddef

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

lgcdef lgccharge of q as "0" enddef

r

Index 36 of page base

lgcdef lgcname of r as "r" enddef

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

lgcdef lgccharge of r as "0" enddef

s

Index 37 of page base

lgcdef lgcname of s as "s" enddef

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

lgcdef lgccharge of s as "0" enddef

t

Index 38 of page base

lgcdef lgcname of t as "t" enddef

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

lgcdef lgccharge of t as "0" enddef

u

Index 39 of page base

lgcdef lgcname of u as "u" enddef

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

lgcdef lgccharge of u as "0" enddef

x

Index 40 of page base

lgcdef lgcname of x as "x" enddef

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

lgcdef lgccharge of x as "0" enddef

Proclamed meaning: "hide"

y

Index 41 of page base

lgcdef lgcname of y as "y" enddef

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

lgcdef lgccharge of y as "0" enddef

z

Index 42 of page base

lgcdef lgcname of z as "z" enddef

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

lgcdef lgccharge of z as "0" enddef

v

Index 43 of page base

lgcdef lgcname of v as "v" enddef

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

lgcdef lgccharge of v as "0" enddef

w

Index 44 of page base

lgcdef lgcname of w as "w" enddef

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

lgcdef lgccharge of w as "0" enddef

A

Index 45 of page base

lgcdef lgcname of A as "A" enddef

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

lgcdef lgccharge of A as "0" enddef

B

Index 46 of page base

lgcdef lgcname of B as "B" enddef

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

lgcdef lgccharge of B as "0" enddef

C

Index 47 of page base

lgcdef lgcname of C as "C" enddef

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

lgcdef lgccharge of C as "0" enddef

D

Index 48 of page base

lgcdef lgcname of D as "D" enddef

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

lgcdef lgccharge of D as "0" enddef

E

Index 49 of page base

lgcdef lgcname of E as "E" enddef

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

lgcdef lgccharge of E as "0" enddef

F

Index 50 of page base

lgcdef lgcname of F as "F" enddef

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

lgcdef lgccharge of F as "0" enddef

G

Index 51 of page base

lgcdef lgcname of G as "G" enddef

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

lgcdef lgccharge of G as "0" enddef

H

Index 52 of page base

lgcdef lgcname of H as "H" enddef

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

lgcdef lgccharge of H as "0" enddef

I

Index 53 of page base

lgcdef lgcname of I as "I" enddef

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

lgcdef lgccharge of I as "0" enddef

J

Index 54 of page base

lgcdef lgcname of J as "J" enddef

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

lgcdef lgccharge of J as "0" enddef

K

Index 55 of page base

lgcdef lgcname of K as "K" enddef

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

lgcdef lgccharge of K as "0" enddef

L

Index 56 of page base

lgcdef lgcname of L as "L" enddef

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

lgcdef lgccharge of L as "0" enddef

M

Index 57 of page base

lgcdef lgcname of M as "M" enddef

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

lgcdef lgccharge of M as "0" enddef

N

Index 58 of page base

lgcdef lgcname of N as "N" enddef

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

lgcdef lgccharge of N as "0" enddef

O

Index 59 of page base

lgcdef lgcname of O as "O" enddef

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

lgcdef lgccharge of O as "0" enddef

P

Index 60 of page base

lgcdef lgcname of P as "P" enddef

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

lgcdef lgccharge of P as "0" enddef

Q

Index 61 of page base

lgcdef lgcname of Q as "Q" enddef

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

lgcdef lgccharge of Q as "0" enddef

R

Index 62 of page base

lgcdef lgcname of R as "R" enddef

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

lgcdef lgccharge of R as "0" enddef

S

Index 63 of page base

lgcdef lgcname of S as "S" enddef

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

lgcdef lgccharge of S as "0" enddef

T

Index 64 of page base

lgcdef lgcname of T as "T" enddef

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

lgcdef lgccharge of T as "0" enddef

U

Index 65 of page base

lgcdef lgcname of U as "U" enddef

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

lgcdef lgccharge of U as "0" enddef

V

Index 66 of page base

lgcdef lgcname of V as "V" enddef

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

lgcdef lgccharge of V as "0" enddef

W

Index 67 of page base

lgcdef lgcname of W as "W" enddef

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

lgcdef lgccharge of W as "0" enddef

X

Index 68 of page base

lgcdef lgcname of X as "X" enddef

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

lgcdef lgccharge of X as "0" enddef

Y

Index 69 of page base

lgcdef lgcname of Y as "Y" enddef

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

lgcdef lgccharge of Y as "0" enddef

Z

Index 70 of page base

lgcdef lgcname of Z as "Z" enddef

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

lgcdef lgccharge of Z as "0" enddef

true

Index 71 of page base

lgcdef lgcname of true as "true" enddef

Define tex show of true as " \mathsf{T}" end define

Proclamed meaning: "true"

lgcdef lgccharge of true as "0" enddef

quote " end quote

Index 72 of page base

lgcdef lgcname of quote lgcvar end quote as "quote ""! end quote" enddef

Define tex show of quote x end quote as " \lceil "[ x ]" \rceil " end define

Proclamed meaning: "quote"

lgcdef lgccharge of quote lgcvar end quote as "0" enddef

optimized define " of " as " end define

Index 73 of page base

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

Define tex show of optimized define x of y as z end define as " ["[ texshow y end texshow ][" \stackrel {"[ x ][" }{\rightarrow\rightarrow }"[ z ]" ]"]] end define

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

Proclamed meaning: "introduce"

tex use

Index 74 of page base

lgcdef lgcname of tex use as "tex use" enddef

Define tex show of tex use as " use" end define

lgcdef lgccharge of tex use as "0" enddef

Define message of tex use as "use" end define

tex show

Index 75 of page base

lgcdef lgcname of tex show as "tex show" enddef

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

lgcdef lgccharge of tex show as "0" enddef

Define message of tex show as "show" end define

priority

Index 76 of page base

lgcdef lgcname of priority as "priority" enddef

Define tex show of priority as " prio" end define

lgcdef lgccharge of priority as "0" enddef

Define message of priority as "priority" end define

value

Index 77 of page base

lgcdef lgcname of value as "value" enddef

Define tex show of value as " val" end define

lgcdef lgccharge of value as "0" enddef

Define "message" of value as "value" end define

macro

Index 78 of page base

lgcdef lgcname of macro as "macro" enddef

Define tex show of macro as " macro" end define

lgcdef lgccharge of macro as "0" enddef

Define message of macro as "macro" end define

render

Index 79 of page base

lgcdef lgcname of render as "render" enddef

lgcdef lgccharge of render as "0" enddef

Define message of render as "render" end define

claim

Index 80 of page base

lgcdef lgcname of claim as "claim" enddef

Define tex show of claim as " claim" end define

lgcdef lgccharge of claim as "0" enddef

Define message of claim as "claim" end define

message

Index 81 of page base

lgcdef lgcname of message as "message" enddef

Define tex show of message as " msg" end define

lgcdef lgccharge of message as "0" enddef

Define "message" of message as "message" end define

unpack

Index 82 of page base

lgcdef lgcname of unpack as "unpack" enddef

lgcdef lgccharge of unpack as "0" enddef

Define message of unpack as "unpack" end define

execute

Index 83 of page base

lgcdef lgcname of execute as "execute" enddef

lgcdef lgccharge of execute as "0" enddef

Define message of execute as "execute" end define

exampleaspect0

Index 84 of page base

lgcdef lgcname of exampleaspect0 as "exampleaspect0" enddef

lgcdef lgccharge of exampleaspect0 as "0" enddef

Define message of exampleaspect0 as "example aspect/kg" end define

exampleaspect1

Index 85 of page base

lgcdef lgcname of exampleaspect1 as "exampleaspect1" enddef

lgcdef lgccharge of exampleaspect1 as "0" enddef

Define message of exampleaspect1 as exampleaspect2 end define

exampleaspect2

Index 86 of page base

lgcdef lgcname of exampleaspect2 as "exampleaspect2" enddef

lgcdef lgccharge of exampleaspect2 as "0" enddef

Define message of exampleaspect2 as exampleaspect2 end define

show " end show

Index 87 of page base

Define tex use of show x end show as "".[ texshow x end texshow ]"". end define

lgcdef lgcname of show lgcvar end show as "show ""! end show" enddef

Define tex show of show x end show as " show("[ x ]" )" end define

optimized define value of show x end show as x end define

lgcdef lgccharge of show lgcvar end show as "0" enddef

macro show " end show

Index 88 of page base

Define tex use of macro show x end show as "".[ texshow x end texshow ]"". end define

lgcdef lgcname of macro show lgcvar end show as "macro show ""! end show" enddef

Define tex show of macro show x end show as " macroshow("[ x ]" )" end define

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

lgcdef lgccharge of macro show lgcvar end show as "0" enddef

hiding show " end show

Index 89 of page base

Define tex use of hiding show x end show as "".[ texshow x end texshow ]"". end define

lgcdef lgcname of hiding show lgcvar end show as "hiding show ""! end show" enddef

Define tex show of hiding show x end show as " hideshow("[ x ]" )" end define

optimized define value of hiding show x end show as x end define

define macro of hiding show x end show as \ x . expand ( quote macro define hiding show x end show as protect hiding show x end show end protect end define end quote , x ) end define

lgcdef lgccharge of hiding show lgcvar end show as "0" enddef

Proclamed meaning: "hide"

hide " end hide

Index 90 of page base

Define tex use of hide x end hide as x end define

lgcdef lgcname of hide lgcvar end hide as "hide ""! end hide" enddef

Define tex show of hide x end hide as " hide("[ x ]" )" end define

optimized define value of hide x end hide as x end define

lgcdef lgccharge of hide lgcvar end hide as "0" enddef

Proclamed meaning: "hide"

array ( " ) " end array

Index 91 of page base

Define tex use of array ( x ) y end array as " \begin{array}{"[ x ]["} "[ y ]" \end{array}"] end define

lgcdef lgcname of array ( lgcvar ) lgcvar end array as "array ( ""! ) ""! end array" enddef

Define tex show of array ( x ) y end array as " array("[ x ][" )\{"[ y ]" \}"] end define

lgcdef lgccharge of array ( lgcvar ) lgcvar end array as "0" enddef

left

Index 92 of page base

lgcdef lgcname of left as "left" enddef

Define tex show of left as "l" end define

lgcdef lgccharge of left as "0" enddef

center

Index 93 of page base

lgcdef lgcname of center as "center" enddef

Define tex show of center as "c" end define

lgcdef lgccharge of center as "0" enddef

right

Index 94 of page base

lgcdef lgcname of right as "right" enddef

Define tex show of right as "r" end define

lgcdef lgccharge of right as "0" enddef

%%

Index 95 of page base

Define tex use of %% as "". end define

lgcdef lgcname of %% as "%%" enddef

Define tex show of %% as "\{\}" end define

optimized define value of %% as norm PlusTag Zero end define

lgcdef lgccharge of %% as "0" enddef

( " )

Index 96 of page base

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

Define tex show of ( x ) as " ("[ x ]" )" end define

optimized define value of ( x ) as x end define

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

lgcdef lgccharge of ( lgcvar ) as "0" enddef

include ( " )

Index 97 of page base

Define tex use of include ( x ) as " include ( \cdots ) " end define

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

define value of include ( x ) as norm [x is val : x] end define

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

< " | " := " >

Index 98 of page base

lgcdef lgcname of < lgcvar | lgcvar := lgcvar > as "< ""! | ""! := ""! >" enddef

Define tex show of < x | y := z > as " \langle "[ x ][" \,{|}"[ y ][" {:=}\,"[ z ]" \rangle "]] end define

lgcdef lgccharge of < lgcvar | lgcvar := lgcvar > as "0" enddef

bottom

Index 99 of page base

lgcdef lgcname of bottom as "bottom" enddef

Define tex show of bottom as " \bot " end define

optimized define value of bottom as [\ x . [x ' x]] ' \ x . [x ' x] end define

lgcdef lgccharge of bottom as "0" enddef

false

Index 100 of page base

lgcdef lgcname of false as "false" enddef

Define tex show of false as " \mathsf{F}" end define

optimized define value of false as true LazyPair true end define

lgcdef lgccharge of false as "0" enddef

define " of " as " end define

Index 101 of page base

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

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

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

Proclamed meaning: "define"

...

Index 102 of page base

lgcdef lgcname of ... as "..." enddef

Define tex show of ... as " \ldots " end define

lgcdef lgccharge of ... as "0" enddef

***

Index 103 of page base

lgcdef lgcname of *** as "***" enddef

Define tex show of *** as " \cdots " end define

lgcdef lgccharge of *** as "0" enddef

Zero

Index 104 of page base

lgcdef lgcname of Zero as "Zero" enddef

define value of Zero as true end define

lgcdef lgccharge of Zero as "0" enddef

One

Index 105 of page base

lgcdef lgcname of One as "One" enddef

define value of One as false Pair Zero end define

lgcdef lgccharge of One as "0" enddef

Two

Index 106 of page base

lgcdef lgcname of Two as "Two" enddef

define value of Two as true Pair One end define

lgcdef lgccharge of Two as "0" enddef

Three

Index 107 of page base

lgcdef lgcname of Three as "Three" enddef

define value of Three as false Pair One end define

lgcdef lgccharge of Three as "0" enddef

Four

Index 108 of page base

lgcdef lgcname of Four as "Four" enddef

define value of Four as true Pair Two end define

lgcdef lgccharge of Four as "0" enddef

Five

Index 109 of page base

lgcdef lgcname of Five as "Five" enddef

define value of Five as false Pair Two end define

lgcdef lgccharge of Five as "0" enddef

Six

Index 110 of page base

lgcdef lgcname of Six as "Six" enddef

define value of Six as true Pair Three end define

lgcdef lgccharge of Six as "0" enddef

Seven

Index 111 of page base

lgcdef lgcname of Seven as "Seven" enddef

define value of Seven as false Pair Three end define

lgcdef lgccharge of Seven as "0" enddef

Eight

Index 112 of page base

lgcdef lgcname of Eight as "Eight" enddef

define value of Eight as true Pair Four end define

lgcdef lgccharge of Eight as "0" enddef

Nine

Index 113 of page base

lgcdef lgcname of Nine as "Nine" enddef

define value of Nine as false Pair Four end define

lgcdef lgccharge of Nine as "0" enddef

Ten

Index 114 of page base

lgcdef lgcname of Ten as "Ten" enddef

define value of Ten as true Pair Five end define

lgcdef lgccharge of Ten as "0" enddef

Base

Index 115 of page base

lgcdef lgcname of Base as "Base" enddef

optimized define value of Base as norm PlusTag Ten end define

lgcdef lgccharge of Base as "0" enddef

Xor ( " , " , " )

Index 116 of page base

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

define value of Xor ( x , y , c ) as x Head Iff [y Head Iff c] end define

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

Carry ( " , " , " )

Index 117 of page base

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

define value of Carry ( x , y , c ) as If x Head then y Head Or c else [y Head And c] end define

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

Plus ( " , " , " )

Index 118 of page base

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

define value of Plus ( x , y , c ) as If [x And y] And c then Zero else [Xor ( x , y , c ) NatPair Plus ( x Tail , y Tail , Carry ( x , y , c ) )] end define

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

Borrow ( " , " , " )

Index 119 of page base

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

define value of Borrow ( x , y , b ) as If x Head then y Head And b else [y Head Or b] end define

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

Compare ( " , " , " )

Index 120 of page base

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

define value of Compare ( x , y , b ) as If x And y then b else Compare ( x Tail , y Tail , Borrow ( x , y , b ) ) end define

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

Minus ( " , " , " )

Index 121 of page base

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

define value of Minus ( x , y , b ) as If x And y then Zero else [Xor ( x , y , b ) NatPair Minus ( x Tail , y Tail , Borrow ( x , y , b ) )] end define

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

BoolTag

Index 122 of page base

lgcdef lgcname of BoolTag as "BoolTag" enddef

define value of BoolTag as Zero Pair Zero end define

lgcdef lgccharge of BoolTag as "0" enddef

IntTag

Index 123 of page base

lgcdef lgcname of IntTag as "IntTag" enddef

define value of IntTag as Zero Pair One end define

lgcdef lgccharge of IntTag as "0" enddef

PairTag

Index 124 of page base

lgcdef lgcname of PairTag as "PairTag" enddef

define value of PairTag as Zero Pair Two end define

lgcdef lgccharge of PairTag as "0" enddef

ExTag

Index 125 of page base

lgcdef lgcname of ExTag as "ExTag" enddef

define value of ExTag as Zero Pair Three end define

lgcdef lgccharge of ExTag as "0" enddef

MapTag

Index 126 of page base

lgcdef lgcname of MapTag as "MapTag" enddef

define value of MapTag as Zero Pair Four end define

lgcdef lgccharge of MapTag as "0" enddef

equal1 ( " , " )

Index 127 of page base

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

define value of equal1 ( x , y ) as if x boolp then x Equal y else if x intp then x Equal y else if x pairp then [y pairp .and. [x head = [y head]]] .and. [x tail = [y tail]] else if x mapp then y mapp else [[x Tag Equal [y Tag]] .and. [x Tail = [y Tail]]] end define

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

TheInt ( " , " )

Index 128 of page base

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

define value of TheInt ( s , v ) as IntTag Pair [[s Or v] Pair v] end define

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

int ( " )

Index 129 of page base

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

define value of int ( x ) as TheInt ( x Head TheBool , x Tail TheNat ) end define

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

plus1 ( " , " )

Index 130 of page base

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

define value of plus1 ( x , y ) as x is int : [y is int : plus2 ( x Sign , y Sign , x Mag , y Mag )] end define

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

plus2 ( " , " , " , " )

Index 131 of page base

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

define value of plus2 ( s , t , x , y ) as s Select t Select PlusTag [x Plus y] else [x LT y] Select MinusTag [y Minus x] else PlusTag [x Minus y] end select end select else t Select [x LT y] Select PlusTag [y Minus x] else MinusTag [x Minus y] end select else MinusTag [x Plus y] end select end select end define

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

minus1 ( " )

Index 132 of page base

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

define value of minus1 ( x ) as x is int : minus2 ( x Sign , x Mag ) end define

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

minus2 ( " , " )

Index 133 of page base

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

define value of minus2 ( s , x ) as TheInt ( Not s , x ) end define

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

times1 ( " , " )

Index 134 of page base

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

define value of times1 ( x , y ) as x is int : [y is int : times2 ( x Sign , y Sign , x Mag , y Mag )] end define

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

times2 ( " , " , " , " )

Index 135 of page base

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

define value of times2 ( s , t , x , y ) as TheInt ( s Iff t , x Times y ) end define

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

lt1 ( " , " )

Index 136 of page base

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

define value of lt1 ( x , y ) as lt2 ( x Sign , y Sign , x Mag , y Mag ) end define

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

lt2 ( " , " , " , " )

Index 137 of page base

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

define value of lt2 ( s , t , x , y ) as s Select t Select x LT y else false end select else t Select true else y LT x end select end select end define

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

append ( " , " )

Index 138 of page base

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

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

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

reverse ( " )

Index 139 of page base

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

define value of reverse ( x ) as norm [x is val : revappend ( x , true )] end define

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

revappend ( " , " )

Index 140 of page base

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

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

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

nth ( " , " )

Index 141 of page base

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

define value of nth ( n , x ) as norm [n is val : [x is val : if n <= 0 then x head else nth ( n - 1 , x tail )]] end define

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

exception

Index 142 of page base

lgcdef lgcname of exception as "exception" enddef

Define tex show of exception as " \bullet " end define

optimized define value of exception as norm [true raise] end define

lgcdef lgccharge of exception as "0" enddef

map ( " )

Index 143 of page base

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

optimized define value of map ( x ) as MapTag LazyPair x end define

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

Catch ( " )

Index 144 of page base

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

define value of Catch ( x ) as If x ExP then true :: [x Tail] else [false :: x] end define

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

catch ( " )

Index 145 of page base

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

optimized define value of catch ( x ) as Catch ( x norm ) end define

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

object ( " )

Index 146 of page base

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

optimized define value of object ( x ) as norm [x is val : Object ( x head head , x head tail , x tail )] end define

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

Object ( " , " , " )

Index 147 of page base

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

define value of Object ( x , y , z ) as x is int : [y is int : [z is val : if [[x < 0] .or. [y < 0]] .or. [[x = 0] .and. [y <= [%% %4]]] then exception else [[x Mag Pair [y Mag]] Pair z]]] end define

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

destruct ( " )

Index 148 of page base

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

optimized define value of destruct ( x ) as norm [x is val : [x is object : [[[[PlusTag [x Head Head]] :: PlusTag [x Head Tail]] :: [x Tail]] norm]]] end define

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

0

Index 149 of page base

lgcdef lgcname of 0 as "0" enddef

Define tex show of 0 as " 0" end define

define value of 0 as norm [%% %0] end define

lgcdef lgccharge of 0 as "0" enddef

1

Index 150 of page base

lgcdef lgcname of 1 as "1" enddef

Define tex show of 1 as " 1" end define

define value of 1 as norm [%% %1] end define

lgcdef lgccharge of 1 as "0" enddef

2

Index 151 of page base

lgcdef lgcname of 2 as "2" enddef

Define tex show of 2 as " 2" end define

define value of 2 as norm [%% %2] end define

lgcdef lgccharge of 2 as "0" enddef

3

Index 152 of page base

lgcdef lgcname of 3 as "3" enddef

Define tex show of 3 as " 3" end define

define value of 3 as norm [%% %3] end define

lgcdef lgccharge of 3 as "0" enddef

4

Index 153 of page base

lgcdef lgcname of 4 as "4" enddef

Define tex show of 4 as " 4" end define

define value of 4 as norm [%% %4] end define

lgcdef lgccharge of 4 as "0" enddef

5

Index 154 of page base

lgcdef lgcname of 5 as "5" enddef

Define tex show of 5 as " 5" end define

define value of 5 as norm [%% %5] end define

lgcdef lgccharge of 5 as "0" enddef

6

Index 155 of page base

lgcdef lgcname of 6 as "6" enddef

Define tex show of 6 as " 6" end define

define value of 6 as norm [%% %6] end define

lgcdef lgccharge of 6 as "0" enddef

7

Index 156 of page base

lgcdef lgcname of 7 as "7" enddef

Define tex show of 7 as " 7" end define

define value of 7 as norm [%% %7] end define

lgcdef lgccharge of 7 as "0" enddef

8

Index 157 of page base

lgcdef lgcname of 8 as "8" enddef

Define tex show of 8 as " 8" end define

define value of 8 as norm [%% %8] end define

lgcdef lgccharge of 8 as "0" enddef

9

Index 158 of page base

lgcdef lgcname of 9 as "9" enddef

Define tex show of 9 as " 9" end define

define value of 9 as norm [%% %9] end define

lgcdef lgccharge of 9 as "0" enddef

numeral ( " )

Index 159 of page base

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

define value of numeral ( x ) as norm [x is val : num1 ( x zeroth , x zeroth , substitute ( x zeroth , quote %% end quote , true ) )] end define

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

num1 ( " , " , " )

Index 160 of page base

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

define value of num1 ( r , t , u ) as norm [r is val : [t is val : [u is val : newline if t tail then num2 ( r , t , u ) else newline LET ( quote x end quote :: u ) :: true BE [s IN newline if t r= quote 0x end quote then num1 ( r , t first , substitute ( r , quote x %0 end quote , s ) ) else newline if t r= quote 1x end quote then num1 ( r , t first , substitute ( r , quote x %1 end quote , s ) ) else newline if t r= quote 2x end quote then num1 ( r , t first , substitute ( r , quote x %2 end quote , s ) ) else newline if t r= quote 3x end quote then num1 ( r , t first , substitute ( r , quote x %3 end quote , s ) ) else newline if t r= quote 4x end quote then num1 ( r , t first , substitute ( r , quote x %4 end quote , s ) ) else newline if t r= quote 5x end quote then num1 ( r , t first , substitute ( r , quote x %5 end quote , s ) ) else newline if t r= quote 6x end quote then num1 ( r , t first , substitute ( r , quote x %6 end quote , s ) ) else newline if t r= quote 7x end quote then num1 ( r , t first , substitute ( r , quote x %7 end quote , s ) ) else newline if t r= quote 8x end quote then num1 ( r , t first , substitute ( r , quote x %8 end quote , s ) ) else newline if t r= quote 9x end quote then num1 ( r , t first , substitute ( r , quote x %9 end quote , s ) ) else newline substitute ( r , quote exception end quote , true )]]]] end define

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

num2 ( " , " , " )

Index 161 of page base

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

define value of num2 ( r , t , u ) as norm [r is val : [t is val : [u is val : LET [quote x end quote :: u] :: true BE [s IN if t r= quote 0 end quote then substitute ( r , quote x %0 end quote , s ) else if t r= quote 1 end quote then substitute ( r , quote x %1 end quote , s ) else if t r= quote 2 end quote then substitute ( r , quote x %2 end quote , s ) else if t r= quote 3 end quote then substitute ( r , quote x %3 end quote , s ) else if t r= quote 4 end quote then substitute ( r , quote x %4 end quote , s ) else if t r= quote 5 end quote then substitute ( r , quote x %5 end quote , s ) else if t r= quote 6 end quote then substitute ( r , quote x %6 end quote , s ) else if t r= quote 7 end quote then substitute ( r , quote x %7 end quote , s ) else if t r= quote 8 end quote then substitute ( r , quote x %8 end quote , s ) else if t r= quote 9 end quote then substitute ( r , quote x %9 end quote , s ) else substitute ( r , quote exception end quote , true )]]]] end define

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

evenp ( " )

Index 162 of page base

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

optimized define value of evenp ( x ) as norm [x is val : [x is int : [x Mag Head TheBool]]] end define

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

oddp ( " )

Index 163 of page base

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

define value of oddp ( x ) as norm [x is val : [x is int : .not. evenp ( x )]] end define

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

half ( " )

Index 164 of page base

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

optimized define value of half ( x ) as norm [x is val : [x is int : norm If x Sign then PlusTag [x Mag Tail] else MinusTag [[x Plus One] Mag Tail]]] end define

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

small ( " )

Index 165 of page base

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

define value of small ( x ) as norm [x is val : norm [x is int : [[[-1] <= x] .and. [x <= 0]]]] end define

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

double ( " , " )

Index 166 of page base

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

define value of double ( b , i ) as norm [b is val : [i is val : [b is bool : [i is int : if b then 1 + [2 * i] else [2 * i]]]]] end define

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

lognot ( " )

Index 167 of page base

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

optimized define value of lognot ( x ) as norm [x is val : [x is int : [[-1] - x]]] end define

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

logior ( " , " )

Index 168 of page base

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

optimized define value of logior ( x , y ) as norm [x is val : [y is val : [x is int : [y is int : if x = -1 then -1 else if y = -1 then -1 else if x = 0 then y else if y = 0 then x else double ( oddp ( x ) .or. oddp ( y ) , logior ( half ( x ) , half ( y ) ) )]]]] end define

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

logxor ( " , " )

Index 169 of page base

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

optimized define value of logxor ( x , y ) as norm [x is val : [y is val : [x is int : [y is int : if x = -1 then lognot ( y ) else if y = -1 then lognot ( x ) else if x = 0 then y else if y = 0 then x else double ( oddp ( x ) != oddp ( y ) , logxor ( half ( x ) , half ( y ) ) )]]]] end define

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

logand ( " , " )

Index 170 of page base

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

optimized define value of logand ( x , y ) as norm [x is val : [y is val : [x is int : [y is int : if x = -1 then y else if y = -1 then x else if x = 0 then 0 else if y = 0 then 0 else double ( oddp ( x ) .and. oddp ( y ) , logand ( half ( x ) , half ( y ) ) )]]]] end define

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

logeqv ( " , " )

Index 171 of page base

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

optimized define value of logeqv ( x , y ) as norm [x is val : [y is val : [x is int : [y is int : lognot ( logxor ( x , y ) )]]]] end define

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

lognand ( " , " )

Index 172 of page base

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

optimized define value of lognand ( x , y ) as norm [x is val : [y is val : [x is int : [y is int : lognot ( logand ( x , y ) )]]]] end define

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

lognor ( " , " )

Index 173 of page base

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

optimized define value of lognor ( x , y ) as norm [x is val : [y is val : [x is int : [y is int : lognot ( logior ( x , y ) )]]]] end define

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

logandc1 ( " , " )

Index 174 of page base

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

optimized define value of logandc1 ( x , y ) as norm [x is val : [y is val : [x is int : [y is int : logand ( lognot ( x ) , y )]]]] end define

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

logandc2 ( " , " )

Index 175 of page base

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

optimized define value of logandc2 ( x , y ) as norm [x is val : [y is val : [x is int : [y is int : logand ( x , lognot ( y ) )]]]] end define

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

logorc1 ( " , " )

Index 176 of page base

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

optimized define value of logorc1 ( x , y ) as norm [x is val : [y is val : [x is int : [y is int : logior ( lognot ( x ) , y )]]]] end define

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

logorc2 ( " , " )

Index 177 of page base

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

optimized define value of logorc2 ( x , y ) as norm [x is val : [y is val : [x is int : [y is int : logior ( x , lognot ( y ) )]]]] end define

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

logtest ( " , " )

Index 178 of page base

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

optimized define value of logtest ( x , y ) as norm [x is val : [y is val : [x is int : [y is int : [logand ( x , y ) != 0]]]]] end define

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

ash ( " , " )

Index 179 of page base

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

optimized define value of ash ( i , c ) as norm [i is val : [c is val : [i is int : [c is int : if c >= 0 then ash+ ( i , c ) else ash- ( i , - c )]]]] end define

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

ash+ ( " , " )

Index 180 of page base

lgcdef lgcname of ash+ ( lgcvar , lgcvar ) as "ash+ ( ""! , ""! )" enddef

define value of ash+ ( i , c ) as norm [i is val : [c is val : [i is int : [c is int : if c = 0 then i else ash+ ( 2 * i , c - 1 )]]]] end define

lgcdef lgccharge of ash+ ( lgcvar , lgcvar ) as "0" enddef

ash- ( " , " )

Index 181 of page base

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

define value of ash- ( i , c ) as norm [i is val : [c is val : [i is int : [c is int : if c = 0 then i else ash- ( half ( i ) , c - 1 )]]]] end define

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

logbitp ( " , " )

Index 182 of page base

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

optimized define value of logbitp ( x , i ) as norm [x is val : [i is val : [x is int : [i is int : if x < 0 then exception else oddp ( ash ( i , - x ) )]]]] end define

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

logcount ( " )

Index 183 of page base

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

optimized define value of logcount ( x ) as norm [x is val : [x is int : if x < 0 then logcount1 ( lognot ( x ) ) else logcount1 ( x )]] end define

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

logcount1 ( " )

Index 184 of page base

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

define value of logcount1 ( x ) as norm [x is val : [x is int : if x = 0 then 0 else [logcount1 ( half ( x ) ) + if evenp ( x ) then 0 else 1]]] end define

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

integer-length ( " )

Index 185 of page base

lgcdef lgcname of integer-length ( lgcvar ) as "integer-length ( ""! )" enddef

optimized define value of integer-length ( x ) as norm [x is val : [x is int : if small ( x ) then 0 else [1 + integer-length ( half ( x ) )]]] end define

lgcdef lgccharge of integer-length ( lgcvar ) as "0" enddef

vector-mask

Index 186 of page base

lgcdef lgcname of vector-mask as "vector-mask" enddef

define value of vector-mask as norm [%% %2 %5 %5] end define

lgcdef lgccharge of vector-mask as "0" enddef

octet-base

Index 187 of page base

lgcdef lgcname of octet-base as "octet-base" enddef

define value of octet-base as norm [%% %2 %5 %6] end define

lgcdef lgccharge of octet-base as "0" enddef

vector-empty ( " )

Index 188 of page base

lgcdef lgcname of vector-empty ( lgcvar ) as "vector-empty ( ""! )" enddef

optimized define value of vector-empty ( x ) as norm [x is val : [x <= vector-mask]] end define

lgcdef lgccharge of vector-empty ( lgcvar ) as "0" enddef

vector-head1 ( " )

Index 189 of page base

lgcdef lgcname of vector-head1 ( lgcvar ) as "vector-head1 ( ""! )" enddef

define value of vector-head1 ( x ) as norm [x is val : logand ( vector-mask , x )] end define

lgcdef lgccharge of vector-head1 ( lgcvar ) as "0" enddef

vector-tail1 ( " )

Index 190 of page base

lgcdef lgcname of vector-tail1 ( lgcvar ) as "vector-tail1 ( ""! )" enddef

define value of vector-tail1 ( x ) as norm [x is val : ash ( x , -8 )] end define

lgcdef lgccharge of vector-tail1 ( lgcvar ) as "0" enddef

vector-cons ( " , " )

Index 191 of page base

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

define value of vector-cons ( x , y ) as norm [x is val : [y is val : logior ( x , ash ( y , 8 ) )]] end define

lgcdef lgccharge of vector-cons ( lgcvar , lgcvar ) as "0" enddef

vector ( " )

Index 192 of page base

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

optimized define value of vector ( x ) as norm [x is val : if vector-empty ( x ) then "". else vector-cons ( vector-head1 ( x ) , vector ( vector-tail1 ( x ) ) )] end define

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

vector-norm ( " )

Index 193 of page base

lgcdef lgcname of vector-norm ( lgcvar ) as "vector-norm ( ""! )" enddef

optimized define value of vector-norm ( x ) as norm [x is val : if x < 0 then true else if [integer-length ( x ) mod 8] = 1 then x else true] end define

lgcdef lgccharge of vector-norm ( lgcvar ) as "0" enddef

vector-suffix ( " , " )

Index 194 of page base

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

optimized define value of vector-suffix ( x , b ) as norm [x is val : [b is val : if b <= 0 then vector ( x ) else vector-suffix ( vector-tail1 ( x ) , b - 1 )]] end define

lgcdef lgccharge of vector-suffix ( lgcvar , lgcvar ) as "0" enddef

vector-prefix ( " , " )

Index 195 of page base

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

optimized define value of vector-prefix ( x , e ) as norm [x is val : [e is val : [e is int : if vector-empty ( x ) .or. [e <= 0] then "". else vector-cons ( vector-head1 ( x ) , vector-prefix ( vector-tail1 ( x ) , e - 1 ) )]]] end define

lgcdef lgccharge of vector-prefix ( lgcvar , lgcvar ) as "0" enddef

vector-subseq ( " , " , " )

Index 196 of page base

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

optimized define value of vector-subseq ( x , b , e ) as norm [x is val : [b is val : [e is val : if b <= 0 then vector-prefix ( x , e ) else vector-subseq ( vector-tail1 ( x ) , b - 1 , e - 1 )]]] end define

lgcdef lgccharge of vector-subseq ( lgcvar , lgcvar , lgcvar ) as "0" enddef

vector-length ( " )

Index 197 of page base

lgcdef lgcname of vector-length ( lgcvar ) as "vector-length ( ""! )" enddef

optimized define value of vector-length ( x ) as norm [x is val : if vector-empty ( x ) then 0 else [1 + vector-length ( vector-tail1 ( x ) )]] end define

lgcdef lgccharge of vector-length ( lgcvar ) as "0" enddef

vector-index ( " , " )

Index 198 of page base

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

optimized define value of vector-index ( x , i ) as if [i < 0] .or. [vector-length ( x ) <= i] then exception else vector-head1 ( vector-suffix ( x , i ) ) end define

lgcdef lgccharge of vector-index ( lgcvar , lgcvar ) as "0" enddef

vector-head ( " )

Index 199 of page base

lgcdef lgcname of vector-head ( lgcvar ) as "vector-head ( ""! )" enddef

define value of vector-head ( x ) as norm [x is val : vector-index ( x , 0 )] end define

lgcdef lgccharge of vector-head ( lgcvar ) as "0" enddef

vector-tail ( " )

Index 200 of page base

lgcdef lgcname of vector-tail ( lgcvar ) as "vector-tail ( ""! )" enddef

define value of vector-tail ( x ) as norm [x is val : vector-suffix ( x , 1 )] end define

lgcdef lgccharge of vector-tail ( lgcvar ) as "0" enddef

vector2byte* ( " )

Index 201 of page base

lgcdef lgcname of vector2byte* ( lgcvar ) as "vector2byte* ( ""! )" enddef

optimized define value of vector2byte* ( x ) as norm [x is val : vector2byte*1 ( x , true )] end define

lgcdef lgccharge of vector2byte* ( lgcvar ) as "0" enddef

vector2byte*1 ( " , " )

Index 202 of page base

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

define value of vector2byte*1 ( x , r ) as norm [x is val : [r is val : if vector-empty ( x ) then reverse ( r ) else vector2byte*1 ( vector-tail1 ( x ) , vector-head1 ( x ) :: r )]] end define

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

vector2vector* ( " )

Index 203 of page base

lgcdef lgcname of vector2vector* ( lgcvar ) as "vector2vector* ( ""! )" enddef

optimized define value of vector2vector* ( x ) as norm [x is val : vector2vector*1 ( x , true )] end define

lgcdef lgccharge of vector2vector* ( lgcvar ) as "0" enddef

vector2vector*1 ( " , " )

Index 204 of page base

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

define value of vector2vector*1 ( x , r ) as norm [x is val : [r is val : if vector-empty ( x ) then reverse ( r ) else vector2vector*1 ( vector-tail1 ( x ) , [vector-head1 ( x ) + octet-base] :: r )]] end define

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

bt2byte* ( " )

Index 205 of page base

lgcdef lgcname of bt2byte* ( lgcvar ) as "bt2byte* ( ""! )" enddef

optimized define value of bt2byte* ( x ) as norm [x is val : reverse ( bt2byte*1 ( x , true ) )] end define

lgcdef lgccharge of bt2byte* ( lgcvar ) as "0" enddef

bt2byte*1 ( " , " )

Index 206 of page base

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

define value of bt2byte*1 ( x , r ) as norm [x is val : [r is val : if x pairp then bt2byte*1 ( x tail , bt2byte*1 ( x head , r ) ) else if [x intp .and. [0 <= x]] .and. [x <= vector-mask] then x :: r else r]] end define

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

bt2vector* ( " )

Index 207 of page base

lgcdef lgcname of bt2vector* ( lgcvar ) as "bt2vector* ( ""! )" enddef

optimized define value of bt2vector* ( x ) as norm [x is val : reverse ( bt2vector*1 ( x , true ) )] end define

lgcdef lgccharge of bt2vector* ( lgcvar ) as "0" enddef

bt2vector*1 ( " , " )

Index 208 of page base

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

define value of bt2vector*1 ( x , r ) as norm [x is val : [r is val : if x pairp then bt2vector*1 ( x tail , bt2vector*1 ( x head , r ) ) else if [x intp .and. [0 <= x]] .and. [x <= vector-mask] then [x + octet-base] :: r else r]] end define

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

bt2vector ( " )

Index 209 of page base

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

optimized define value of bt2vector ( x ) as norm [x is val : revbyte*2vector ( bt2byte*1 ( x , true ) , !"". )] end define

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

revbyte*2vector ( " , " )

Index 210 of page base

lgcdef lgcname of revbyte*2vector ( lgcvar , lgcvar ) as "revbyte*2vector ( ""! , ""! )" enddef

define value of revbyte*2vector ( x , r ) as norm [x is val : [r is val : if x atom then r else revbyte*2vector ( x tail , vector-cons ( x head , r ) )]] end define

lgcdef lgccharge of revbyte*2vector ( lgcvar , lgcvar ) as "0" enddef

vector-revappend ( " , " )

Index 211 of page base

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

define value of vector-revappend ( x , y ) as norm [x is val : [y is val : if vector-empty ( x ) then y else vector-revappend ( vector-tail1 ( x ) , vector-head1 ( x ) :: y )]] end define

lgcdef lgccharge of vector-revappend ( lgcvar , lgcvar ) as "0" enddef

vt2byte* ( " )

Index 212 of page base

lgcdef lgcname of vt2byte* ( lgcvar ) as "vt2byte* ( ""! )" enddef

optimized define value of vt2byte* ( x ) as norm [x is val : reverse ( vt2byte*1 ( x , true ) )] end define

lgcdef lgccharge of vt2byte* ( lgcvar ) as "0" enddef

vt2byte*1 ( " , " )

Index 213 of page base

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

define value of vt2byte*1 ( x , r ) as norm [x is val : [r is val : if x pairp then vt2byte*1 ( x tail , vt2byte*1 ( x head , r ) ) else if x intp then vector-revappend ( x , r ) else r]] end define

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

vector-revappend1 ( " , " )

Index 214 of page base

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

define value of vector-revappend1 ( x , y ) as norm [x is val : [y is val : if vector-empty ( x ) then y else vector-revappend1 ( vector-tail1 ( x ) , [vector-head1 ( x ) + octet-base] :: y )]] end define

lgcdef lgccharge of vector-revappend1 ( lgcvar , lgcvar ) as "0" enddef

vt2vector* ( " )

Index 215 of page base

lgcdef lgcname of vt2vector* ( lgcvar ) as "vt2vector* ( ""! )" enddef

optimized define value of vt2vector* ( x ) as norm [x is val : reverse ( vt2vector*1 ( x , true ) )] end define

lgcdef lgccharge of vt2vector* ( lgcvar ) as "0" enddef

vt2vector*1 ( " , " )

Index 216 of page base

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

define value of vt2vector*1 ( x , r ) as norm [x is val : [r is val : if x pairp then vt2vector*1 ( x tail , vt2vector*1 ( x head , r ) ) else if x intp then vector-revappend1 ( x , r ) else r]] end define

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

vt2vector ( " )

Index 217 of page base

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

optimized define value of vt2vector ( x ) as norm [x is val : revbyte*2vector ( vt2byte*1 ( x , true ) , !"". )] end define

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

floor1 ( " , " )

Index 218 of page base

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

define value of floor1 ( x , y ) as if x < y then 0 :: x else LET floor1 ( x , 2 * y ) BE [z IN if z tail < y then [2 * [z head]] :: [z tail] else [[[2 * [z head]] + 1] :: [z tail - y]]] end define

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

ceiling1 ( " , " )

Index 219 of page base

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

define value of ceiling1 ( x , y ) as LET floor1 ( x , y ) BE [z IN if z tail = 0 then z else [[z head + 1] :: [z tail - y]]] end define

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

round1 ( " , " )

Index 220 of page base

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

define value of round1 ( x , y ) as LET floor1 ( x , y ) BE [z IN if [z tail * 2] < y then z else if [z tail * 2] > y then [z head + 1] :: [z tail - y] else if evenp ( z head ) then z else [[z head + 1] :: [z tail - y]]] end define

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

floor ( " , " )

Index 221 of page base

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

optimized define value of floor ( x , y ) as if y <= 0 then exception else if 0 <= x then floor1 ( x , y ) else reverse quotient ( ceiling1 ( - x , y ) ) end define

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

ceiling ( " , " )

Index 222 of page base

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

optimized define value of ceiling ( x , y ) as if y <= 0 then exception else if 0 < x then ceiling1 ( x , y ) else reverse quotient ( floor1 ( - x , y ) ) end define

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

truncate ( " , " )

Index 223 of page base

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

optimized define value of truncate ( x , y ) as if y <= 0 then exception else if 0 <= x then floor1 ( x , y ) else reverse quotient ( floor1 ( - x , y ) ) end define

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

round ( " , " )

Index 224 of page base

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

optimized define value of round ( x , y ) as if y <= 0 then exception else if 0 < x then round1 ( x , y ) else reverse quotient ( round1 ( - x , y ) ) end define

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

reverse quotient ( " )

Index 225 of page base

lgcdef lgcname of reverse quotient ( lgcvar ) as "reverse quotient ( ""! )" enddef

define value of reverse quotient ( p ) as [- [p head]] :: - [p tail] end define

lgcdef lgccharge of reverse quotient ( lgcvar ) as "0" enddef

length ( " )

Index 226 of page base

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

define value of length ( x ) as norm [x is val : length1 ( x , 0 )] end define

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

length1 ( " , " )

Index 227 of page base

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

define value of length1 ( x , r ) as norm [x is val : [r is val : if x atom then r else length1 ( x tail , r + 1 )]] end define

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

list-prefix ( " , " )

Index 228 of page base

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

define value of list-prefix ( l , n ) as norm [l is val : [n is val : if [n = 0] .or. [l atom] then true else [l head :: list-prefix ( l tail , n - 1 )]]] end define

lgcdef lgccharge of list-prefix ( lgcvar , lgcvar ) as "0" enddef

list-suffix ( " , " )

Index 229 of page base

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

define value of list-suffix ( l , n ) as norm [l is val : [n is val : if n = 0 then l else list-suffix ( l tail , n - 1 )]] end define

lgcdef lgccharge of list-suffix ( lgcvar , lgcvar ) as "0" enddef

lookup ( " , " , " )

Index 230 of page base

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

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

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

zip ( " , " )

Index 231 of page base

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

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

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

array1 ( " , " , " )

Index 232 of page base

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

define value of array1 ( a , i , x ) as norm [a is val : [i is val : [x is val : [i is int : [x is int : if a atom then true else if a head intp then if i = [a head] then a tail else true else array1 ( if logbitp ( x , i ) then a tail else [a head] , i , x + 1 )]]]]] end define

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

array2 ( " , " , " , " )

Index 233 of page base

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

define value of array2 ( a , i , v , x ) as norm [a is val : [i is val : [v is val : [x is val : [i is int : [x is int : if a atom then array3 ( i , v ) else if a head intp then if i = [a head] then array3 ( i , v ) else if v then a else array5 ( a head , a tail , i , v , x ) else if logbitp ( x , i ) then array4 ( a head , array2 ( a tail , i , v , x + 1 ) ) else array4 ( array2 ( a head , i , v , x + 1 ) , a tail )]]]]]] end define

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

array3 ( " , " )

Index 234 of page base

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

define value of array3 ( i , v ) as norm [i is val : [v is val : [i is int : if v = true then true else [i :: v]]]] end define

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

array4 ( " , " )

Index 235 of page base

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

define value of array4 ( a , b ) as norm [a is val : [b is val : if a atom then if b atom then true else if b head intp then b else [a :: b] else if b atom .and. [a head intp] then a else [a :: b]]] end define

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

array5 ( " , " , " , " , " )

Index 236 of page base

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

define value of array5 ( i , v , j , w , x ) as norm [i is val : [v is val : [j is val : [w is val : [x is val : [i is int : [j is int : [x is int : if logbitp ( x , i ) then if logbitp ( x , j ) then true :: array5 ( i , v , j , w , x + 1 ) else [[j :: w] :: [i :: v]] else if logbitp ( x , j ) then [i :: v] :: [j :: w] else [array5 ( i , v , j , w , x + 1 ) :: true]]]]]]]]] end define

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

push ( " , " , " )

Index 237 of page base

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

define value of push ( a , i , v ) as norm [a is val : [i is val : [v is val : [a [[ i -> v :: [a [[ i ]]] ]]]]]] end define

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

pop ( " , " )

Index 238 of page base

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

define value of pop ( a , i ) as norm [a is val : [i is val : [a [[ i -> a [[ i ]] tail ]]]]] end define

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

get* ( " , " )

Index 239 of page base

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

define value of get* ( a , i ) as norm [a is val : [i is val : if i atom then a else get* ( a [[ i head ]] , i tail )]] end define

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

push* ( " , " , " )

Index 240 of page base

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

define value of push* ( a , i , v ) as norm [a is val : [i is val : [v is val : [a [[ i => v :: get* ( a , i ) ]]]]]] end define

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

pop* ( " , " )

Index 241 of page base

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

define value of pop* ( a , i ) as norm [a is val : [i is val : [a [[ i => get* ( a , i ) tail ]]]]] end define

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

array-domain ( " )

Index 242 of page base

lgcdef lgcname of array-domain ( lgcvar ) as "array-domain ( ""! )" enddef

define value of array-domain ( x ) as norm [x is val : if x atom then true else if x head intp then x head :: <<>> else sort-merge ( array-domain ( x head ) , array-domain ( x tail ) )] end define

lgcdef lgccharge of array-domain ( lgcvar ) as "0" enddef

sort-merge ( " , " )

Index 243 of page base

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

define value of sort-merge ( x , y ) as norm [x is val : [y is val : if x atom then y else sort-merge1 ( y , x )]] end define

lgcdef lgccharge of sort-merge ( lgcvar , lgcvar ) as "0" enddef

sort-merge1 ( " , " )

Index 244 of page base

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

define value of sort-merge1 ( x , y ) as norm [x is val : [y is val : if x atom then y else if x head < [y head] then x head :: sort-merge1 ( x tail , y ) else [y head :: sort-merge1 ( y tail , x )]]] end define

lgcdef lgccharge of sort-merge1 ( lgcvar , lgcvar ) as "0" enddef

eval ( " , " , " )

Index 245 of page base

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

define value of eval ( t , s , c ) as norm [t is val : [s is val : [c is val : LET t ref BE [r IN LET t idx BE [i IN if r = 0 then i maptag else if i = 0 then if r = [c [[ 0 ]]] then c maptag else [c [[ c [[ 0 ]] ]] [[ "cluster" ]] [[ r ]] maptag] else LET c [[ r ]] [[ "code" ]] [[ i ]] BE [f IN if f mapp then eval1 ( f , t tail , s , c ) else if f = true then lookup ( t , s , map ( true ) ) else if f = 1 then t first maptag else [[[map ( \ t . \ s . \ c . \ x . [eval ( t second , [t first :: map ( x )] :: s , c ) Tail] ) apply [t maptag]] apply [s maptag]] apply [c maptag]]]]]]]] end define

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

eval1 ( " , " , " , " )

Index 246 of page base

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

define value of eval1 ( f , t , s , c ) as norm [f is val : [t is val : [s is val : [c is val : [f is map : if t atom then f else eval1 ( f apply eval ( t head , s , c ) , t tail , s , c )]]]]] end define

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

spy ( " )

Index 247 of page base

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

optimized define value of spy ( x ) as norm [x is val : "spy"] end define

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

trace ( " )

Index 248 of page base

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

optimized define value of trace ( x ) as norm [x is val : "trace"] end define

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

print ( " )

Index 249 of page base

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

optimized define value of print ( x ) as norm [x is val : "print"] end define

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

timer ( " )

Index 250 of page base

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

optimized define value of timer ( x ) as norm [x is val : "timer"] end define

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

measure ( " , " )

Index 251 of page base

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

define macro of measure ( x , y ) as \ x . expand ( quote macro define measure ( x , y ) as [[trace ( x ) .then. timer ( x )] .then. y] .prog1. timer ( true ) end define end quote , x ) end define

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

test1

Index 252 of page base

lgcdef lgcname of test1 as "test1" enddef

define value of test1 as \ c . test2 ( c ) end define

lgcdef lgccharge of test1 as "0" enddef

test2 ( " )

Index 253 of page base

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

define value of test2 ( c ) as norm [c is val : LET test3 ( c [[ c [[ 0 ]] ]] [[ "expansion" ]] , c ) catch BE [p IN if p tail != true then diagnose p tail end diagnose else if p head then show quote "In testsuite: unprocessed exception" end quote end show else [spy ( true ) .then. true]]] end define

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

diagnose " end diagnose

Index 254 of page base

Define tex use of diagnose x end diagnose as x end define

lgcdef lgcname of diagnose lgcvar end diagnose as "diagnose ""! end diagnose" enddef

define value of diagnose x end diagnose as norm [x is val : [[quote diagnose x end diagnose end quote ref :: [quote diagnose x end diagnose end quote idx :: [x debug]]] :: [x :: true]]] end define

lgcdef lgccharge of diagnose lgcvar end diagnose as "0" enddef

test3 ( " , " )

Index 255 of page base

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

define value of test3 ( t , c ) as norm [t is val : [c is val : LET t ref BE [r IN LET t idx BE [i IN if [r = 0] .or. [i = 0] then true else LET c [[ r ]] [[ "codex" ]] [[ r ]] [[ i ]] [[ 0 ]] [[ "claim" ]] BE [d IN if d pairp then [eval ( d third , true , c ) apply [[t :: [c :: true]] maptag]] untag else if c [[ r ]] [[ "codex" ]] [[ r ]] [[ i ]] [[ 0 ]] [[ "definition" ]] != true then true else test3* ( t tail , c )]]]]] end define

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

test3* ( " , " )

Index 256 of page base

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

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

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

ttst1 ( " )

Index 257 of page base

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

define value of ttst1 ( x ) as norm [x is val : LET x zeroth BE [t IN LET x first BE [c IN [spy ( t ) .then. if eval ( t first , true , c ) untag catch = [false :: true] then true else make math t end math]]]] end define

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

ftst1 ( " )

Index 258 of page base

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

define value of ftst1 ( x ) as norm [x is val : LET x zeroth BE [t IN LET x first BE [c IN [spy ( t ) .then. if eval ( t first , true , c ) untag catch = [false :: false] then true else make math t end math]]]] end define

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

etst1 ( " )

Index 259 of page base

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

define value of etst1 ( x ) as norm [x is val : LET x zeroth BE [t IN LET x first BE [c IN [spy ( t ) .then. if eval ( t first , true , c ) untag catch = [eval ( t second , true , c ) untag catch] then true else make math t end math]]]] end define

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

ttst " end test

Index 260 of page base

lgcdef lgcname of ttst lgcvar end test as "ttst ""! end test" enddef

Define tex show of ttst x end test as " [ "[ x ]" ]^{\cdot}" end define

define claim of ttst u end test as \ x . ttst1 ( x ) end define

lgcdef lgccharge of ttst lgcvar end test as "0" enddef

ftst " end test

Index 261 of page base

lgcdef lgcname of ftst lgcvar end test as "ftst ""! end test" enddef

Define tex show of ftst x end test as " [ "[ x ]" ]^{-}" end define

define claim of ftst u end test as \ x . ftst1 ( x ) end define

lgcdef lgccharge of ftst lgcvar end test as "0" enddef

etst " ; " end test

Index 262 of page base

lgcdef lgcname of etst lgcvar ; lgcvar end test as "etst ""! ; ""! end test" enddef

Define tex show of etst x ; y end test as " [ "[ x ][" = "[ y ]" ]^{=}"] end define

define claim of etst u ; v end test as \ x . etst1 ( x ) end define

lgcdef lgccharge of etst lgcvar ; lgcvar end test as "0" enddef

texshow " end texshow

Index 263 of page base

lgcdef lgcname of texshow lgcvar end texshow as "texshow ""! end texshow" enddef

Define tex show of texshow x end texshow as " \underline{ "[ x ]" }" end define

lgcdef lgccharge of texshow lgcvar end texshow as "0" enddef

testfunc1 ( " )

Index 264 of page base

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

define value of testfunc1 ( x ) as x + 3 end define

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

testfunc2 ( " , " )

Index 265 of page base

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

define value of testfunc2 ( x , x ) as x end define

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

testfunc3

Index 266 of page base

lgcdef lgcname of testfunc3 as "testfunc3" enddef

define value of testfunc3 as 3 end define

lgcdef lgccharge of testfunc3 as "0" enddef

testfunc4

Index 267 of page base

lgcdef lgcname of testfunc4 as "testfunc4" enddef

define value of testfunc4 as quote define value of testfunc4 as 2 end define end quote end define

lgcdef lgccharge of testfunc4 as "0" enddef

testfunc5 ( " )

Index 268 of page base

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

define value of testfunc5 ( x ) as y end define

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

testfunc6 ( " )

Index 269 of page base

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

define value of testfunc6 ( 2 ) as 2 end define

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

testfunc7 ( " )

Index 270 of page base

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

define value of testfunc7 ( x _ { 4 } ) as x _ { 4 } + 3 end define

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

testfunc8 ( " , " )

Index 271 of page base

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

define value of testfunc8 ( x _ { 2 + 2 } , x _ { 4 } ) as x _ { 2 + 2 } + [x _ { 4 }] end define

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

YY

Index 272 of page base

lgcdef lgcname of YY as "YY" enddef

Define tex show of YY as " \mathsf{Y}" end define

optimized define value of YY as \ f . [[\ x . [f ' [x ' x]]] ' \ x . [f ' [x ' x]]] end define

lgcdef lgccharge of YY as "0" enddef

compile ( " )

Index 273 of page base

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

optimized define value of compile ( c ) as norm [c is val : [[map ( \ c . [YY ' \ C . compile1 ( c [[ 0 ]] , c , map ( C ) )] ) apply [c maptag]] untag]] end define

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

compile1 ( " , " , " )

Index 274 of page base

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

define value of compile1 ( r , c , C ) as norm [r is val : [c is val : [C is val : if .not. [r intp] then exception else LET c [[ r :: ["code" :: true] => compile2 ( r , c , C ) ]] BE [c IN LET c [[ r :: ["diagnose" :: true] => compile-claim ( r , c , C ) ]] BE [c IN c]]]]] end define

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

compile2 ( " , " , " )

Index 275 of page base

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

define value of compile2 ( r , c , C ) as norm [r is val : [c is val : [C is val : compile3 ( C , c [[ r ]] [[ "codex" ]] [[ r ]] , true )]]] end define

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

compile3 ( " , " , " )

Index 276 of page base

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

define value of compile3 ( C , x , X ) as norm [C is val : [x is val : [X is val : if x then X else if x head intp then X [[ x head -> compile4 ( x tail , C ) ]] else compile3 ( C , x head , compile3 ( C , x tail , X ) )]]] end define

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

compile4 ( " , " )

Index 277 of page base

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

define value of compile4 ( x , C ) as norm [x is val : [C is val : LET x [[ 0 ]] [[ "value" ]] BE [d IN if d then true else if [.not. [d pairp]] .or. .not. [d head pairp] then exception else if d ref != 0 then [map ( \ d . \ C . [compile-code ( d , C ) Tail ' true] ) apply [d maptag]] apply C else if .not. [d head tail pairp] then exception else LET d head tail head BE [i IN if i = "lambda" then 0 else if i = "quote" then 1 else if i = "true" then true maptag else if i = "apply" then map ( \ x . \ y . [x ' y] ) else if i = "if" then map ( \ x . \ y . \ z . If x then y else z ) else exception]]]] end define

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

make-constant ( " )

Index 278 of page base

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

define value of make-constant ( v ) as norm [v is val : [map ( \ v . \ s . v ) apply [v maptag]]] end define

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

deBruijn ( " , " , " )

Index 279 of page base

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

define value of deBruijn ( v , a , b ) as norm [v is val : [a is val : [b is val : if a then deBruijn1 ( v , b ) else if .not. [a pairp] then exception else if v t= [a head] then 0 else [1 + deBruijn ( v , a tail , b )]]]] end define

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

deBruijn1 ( " , " )

Index 280 of page base

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

define value of deBruijn1 ( v , b ) as norm [v is val : [b is val : if .not. [b pairp] then exception else if v t= [b head] then deBruijn2 ( b tail ) else deBruijn1 ( v , b tail )]] end define

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

deBruijn2 ( " )

Index 281 of page base

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

define value of deBruijn2 ( b ) as norm [b is val : if b then 0 else if b pairp then 1 + deBruijn2 ( b tail ) else exception] end define

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

lazy-nth ( " , " )

Index 282 of page base

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

define value of lazy-nth ( i , s ) as If i = 0 then s Head else lazy-nth ( i - 1 , s Tail ) end define

lgcdef lgccharge of lazy-nth ( lgcvar , lgcvar ) as "0" enddef

make-variable ( " , " , " )

Index 283 of page base

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

define value of make-variable ( v , a , b ) as norm [v is val : [a is val : [b is val : LET deBruijn ( v , a , b ) catch tail BE [i IN if i then make-constant ( true ) else [map ( \ i . \ s . lazy-nth ( i , s ) ) apply [i maptag]]]]]] end define

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

make-lambda ( " )

Index 284 of page base

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

define value of make-lambda ( f ) as norm [f is val : [map ( \ f . \ s . \ x . [f ' [x LazyPair s]] ) apply f]] end define

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

make-lambdas ( " , " )

Index 285 of page base

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

define value of make-lambdas ( a , f ) as norm [a is val : [f is val : if .not. [a pairp] then f else make-lambda ( make-lambdas ( a tail , f ) )]] end define

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

compile-code ( " , " )

Index 286 of page base

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

define value of compile-code ( d , c ) as norm [d is val : [c is val : if [[.not. [d tail tail tail pairp]] .or. .not. [d tail tail tail tail]] .or. .not. [d second pairp] then exception else compile-code1 ( d second tail , d third , c )]] end define

lgcdef lgccharge of compile-code ( lgcvar , lgcvar ) as "0" enddef

compile-code1 ( " , " , " )

Index 287 of page base

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

define value of compile-code1 ( b , t , c ) as norm [b is val : [t is val : [c is val : make-lambdas ( b , compile-code2 ( true , b , t , c ) )]]] end define

lgcdef lgccharge of compile-code1 ( lgcvar , lgcvar , lgcvar ) as "0" enddef

compile-code2 ( " , " , " , " )

Index 288 of page base

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

define value of compile-code2 ( a , b , t , c ) as norm [a is val : [b is val : [t is val : [c is val : if [[.not. [t pairp]] .or. .not. [t head pairp]] .or. .not. [t head tail pairp] then exception else LET t ref BE [r IN LET t idx BE [i IN if [.not. [r intp]] .or. .not. [i intp] then exception else if r = 0 then make-constant ( i ) else if i = 0 then if r = [c [[ 0 ]]] then make-constant ( c ) else make-constant ( c [[ c [[ 0 ]] ]] [[ "cluster" ]] [[ r ]] ) else LET c [[ r ]] [[ "code" ]] [[ i ]] BE [f IN if f mapp then compile-code2* ( map ( \ f . \ s . f ) apply f , a , b , t tail , c ) else if f = true then make-variable ( t , a , b ) else if f = 1 then make-constant ( t first ) else make-lambda ( compile-code2 ( t first :: a , b , t second , c ) )]]]]]]] end define

lgcdef lgccharge of compile-code2 ( lgcvar , lgcvar , lgcvar , lgcvar ) as "0" enddef

compile-code2* ( " , " , " , " , " )

Index 289 of page base

lgcdef lgcname of compile-code2* ( lgcvar , lgcvar , lgcvar , lgcvar , lgcvar ) as "compile-code2* ( ""! , ""! , ""! , ""! , ""! )" enddef

define value of compile-code2* ( f , a , b , t , c ) as norm [f is val : [a is val : [b is val : [t is val : [c is val : if t then f else compile-code2* ( [map ( \ f . \ x . \ s . [[f ' s] ' [x ' s]] ) apply f] apply compile-code2 ( a , b , t head , c ) , a , b , t tail , c )]]]]] end define

lgcdef lgccharge of compile-code2* ( lgcvar , lgcvar , lgcvar , lgcvar , lgcvar ) as "0" enddef

prune ( " , " )

Index 290 of page base

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

define value of prune ( t , C ) as norm [t is val : [C is val : if t then true else prune1 ( t , C )]] end define

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

prune1 ( " , " )

Index 291 of page base

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

define value of prune1 ( t , C ) as norm [t is val : [C is val : LET [C [[ 0 ]] :: 0] :: true BE [b IN if [[.not. [t pairp]] .or. .not. [t head pairp]] .or. .not. [t head tail pairp] then b else LET t ref BE [r IN LET t idx BE [i IN if [.not. [r intp]] .or. .not. [i intp] then b else if r = 0 then if t tail then t else b else if i = 0 then if t tail then t else b else LET C [[ r ]] [[ "dictionary" ]] [[ i ]] BE [a IN if [.not. [a intp]] .or. [a < 0] then b else LET prune* ( a , t tail , C ) catch BE [v IN if v head then b else [t head :: [v tail]]]]]]]]] end define

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

prune* ( " , " , " )

Index 292 of page base

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

define value of prune* ( a , t , C ) as norm [a is val : [t is val : [C is val : if a = 0 then if t then true else exception else if .not. [t pairp] then exception else [prune1 ( t head , C ) :: prune* ( a - 1 , t tail , C )]]]] end define

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

eval-claim

Index 293 of page base

lgcdef lgcname of eval-claim as "eval-claim" enddef

define value of eval-claim as norm map ( \ d . \ C . prune ( [eval ( d third , true , C ) apply [C maptag]] untag , C ) ) end define

lgcdef lgccharge of eval-claim as "0" enddef

compile-claim ( " , " , " )

Index 294 of page base

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

define value of compile-claim ( r , c , C ) as norm [r is val : [c is val : [C is val : LET c [[ r ]] [[ "codex" ]] [[ r ]] [[ 0 ]] [[ 0 ]] [[ "claim" ]] BE [d IN if d pairp then [eval-claim apply [d maptag]] apply C else LET c [[ r ]] [[ "bibliography" ]] first BE [r IN if r then true maptag else LET c [[ r ]] [[ "codex" ]] [[ r ]] [[ 0 ]] [[ 0 ]] [[ "claim" ]] BE [d IN if d pairp then [eval-claim apply [d maptag]] apply C else [true maptag]]]]]]] end define

lgcdef lgccharge of compile-claim ( lgcvar , lgcvar , lgcvar ) as "0" enddef

macro1

Index 295 of page base

lgcdef lgcname of macro1 as "macro1" enddef

define value of macro1 as \ c . macro2 ( c ) end define

lgcdef lgccharge of macro1 as "0" enddef

macro2 ( " )

Index 296 of page base

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

define value of macro2 ( c ) as norm [c is val : macro3 ( c [[ c [[ 0 ]] ]] [[ "body" ]] , macrostate0 , c )] end define

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

macro3 ( " , " , " )

Index 297 of page base

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

define value of macro3 ( t , s , c ) as norm [t is val : [s is val : [c is val : LET t ref BE [r IN LET t idx BE [i IN if r = 0 then t else if i = 0 then t else LET c [[ r ]] [[ "codex" ]] [[ r ]] [[ i ]] [[ 0 ]] [[ "macro" ]] BE [d IN if d = true then t head :: macro3* ( t tail , s , c ) else [[eval ( d third , true , c ) apply [[t :: [s :: [c :: true]]] maptag]] untag]]]]]]] end define

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

macro3* ( " , " , " )

Index 298 of page base

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

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

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

macro4 ( " )

Index 299 of page base

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

define value of macro4 ( x ) as norm [x is val : macro3 ( x zeroth , x first , x second )] end define

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

macrostate0

Index 300 of page base

lgcdef lgcname of macrostate0 as "macrostate0" enddef

define value of macrostate0 as norm [map ( \ x . macro4 ( x ) ) :: true] end define

lgcdef lgccharge of macrostate0 as "0" enddef

stateexpand ( " , " , " )

Index 301 of page base

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

define value of stateexpand ( t , s , c ) as norm [t is val : [s is val : [c is val : [[s head apply [[t :: [s :: [c :: true]]] maptag]] untag]]]] end define

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

stateexpand* ( " , " , " )

Index 302 of page base

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

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

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

substitute ( " , " , " )

Index 303 of page base

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

define value of substitute ( r , t , s ) as norm [r is val : [t is val : [s is val : LET lookup ( t , s , true ) BE [d IN if d = true then [t ref :: [t idx :: [r debug]]] :: substitute* ( r , t tail , s ) else d]]]] end define

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

substitute* ( " , " , " )

Index 304 of page base

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

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

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

expand ( " , " )

Index 305 of page base

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

define value of expand ( d , x ) as norm [d is val : [x is val : LET x zeroth BE [t IN LET zip ( d first tail , t tail ) BE [s IN stateexpand ( substitute ( t , d second , s ) , x first , x second )]]]] end define

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

protect " end protect

Index 306 of page base

lgcdef lgcname of protect lgcvar end protect as "protect ""! end protect" enddef

Define tex show of protect x end protect as " protect("[ x ]" )" end define

define macro of protect u end protect as \ x . [x zeroth first] end define

lgcdef lgccharge of protect lgcvar end protect as "0" enddef

Macro define " as " end define

Index 307 of page base

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

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

define macro of Macro define u as v end define as \ x . Macrodefine ( x ) end define

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

Macrodefine ( " )

Index 308 of page base

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

define value of Macrodefine ( x ) as norm [x is val : if x = true then quote true end quote else LET x zeroth BE [t IN LET t first BE [u IN LET t second BE [v IN LET [quote u end quote :: u] :: [[quote v end quote :: v] :: true] BE [s IN substitute ( t , quote define macro of u as v end define end quote , s )]]]]] end define

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

macro define " as " end define

Index 309 of page base

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

Define tex show of macro define x as y end define as " [ "[ texshow x end texshow ][" \mathrel{\ddot{=}} "[ y ]" ]"] end define

define macro of macro define u as v end define as \ x . macrodefine ( x ) end define

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

Proclamed meaning: "hide"

macrodefine ( " )

Index 310 of page base

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

define value of macrodefine ( x ) as norm [x is val : LET x zeroth BE [t IN LET t first BE [u IN LET [quote t end quote :: t] :: [[quote u end quote :: u] :: true] BE [s IN substitute ( t , quote define macro of u as \ x . expand ( quote t end quote , x ) end define end quote , s )]]]] end define

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

self

Index 311 of page base

lgcdef lgcname of self as "self" enddef

define macro of self as \ x . makeself ( x ) end define

lgcdef lgccharge of self as "0" enddef

makeself ( " )

Index 312 of page base

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

define value of makeself ( x ) as norm [x is val : LET x zeroth BE [t IN LET x second BE [c IN LET t debug BE [d IN LET c [[ 0 ]] BE [r IN [[r :: [0 :: d]] :: true]]]]]] end define

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

root protect " end protect

Index 313 of page base

lgcdef lgcname of root protect lgcvar end protect as "root protect ""! end protect" enddef

Define tex show of root protect x end protect as " root\ protect( "[ x ]" )" end define

define macro of root protect u end protect as \ x . rootprotect ( x ) end define

lgcdef lgccharge of root protect lgcvar end protect as "0" enddef

rootprotect ( " )

Index 314 of page base

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

define value of rootprotect ( x ) as norm [x is val : LET x zeroth BE [t IN LET t first BE [u IN LET u ref BE [r IN LET u idx BE [i IN LET t debug BE [d IN [[r :: [i :: d]] :: stateexpand* ( u tail , x first , x second )]]]]]]] end define

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

render define " as " end define

Index 315 of page base

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

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

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

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

tex use define " as " end define

Index 316 of page base

lgcdef lgcname of tex use define lgcvar as lgcvar end define as "tex use define ""! as ""! end define" enddef

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

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

lgcdef lgccharge of tex use define lgcvar as lgcvar end define as "0" enddef

Proclamed meaning: "hide"

tex show define " as " end define

Index 317 of page base

lgcdef lgcname of tex show define lgcvar as lgcvar end define as "tex show define ""! as ""! end define" enddef

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

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

lgcdef lgccharge of tex show define lgcvar as lgcvar end define as "0" enddef

Proclamed meaning: "hide"

value define " as " end define

Index 318 of page base

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

Define tex show of value define x as y end define as " [ "[ texshow x end texshow ][" \mathrel{\dot{=}} "[ y ]" ]"] end define

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

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

message define " as " end define

Index 319 of page base

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

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

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

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

execute define " as " end define

Index 320 of page base

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

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

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

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

priority table "

Index 321 of page base

Define tex use of priority table x as " \mathbf{Priority\ table} \linebreak[4] "[ x ]"". end define

lgcdef lgcname of priority table lgcvar as "priority table ""!" enddef

Define tex show of priority table x as " \mathbf{Priority\ table} \ "[ x ]"". end define

define macro of priority table x as \ x . expand ( quote macro define priority table x as define priority of self as protect x end protect end define end define end quote , x ) end define

lgcdef lgccharge of priority table lgcvar as "0" enddef

Proclamed meaning: "hide"

verifier " end verifier

Index 322 of page base

lgcdef lgcname of verifier lgcvar end verifier as "verifier ""! end verifier" enddef

Define tex show of verifier x end verifier as " [ \mathbf{Verifier\colon} "[ x ]" ]" end define

define macro of verifier x end verifier as \ x . expand ( quote macro define verifier x end verifier as define claim of self as x end define end define end quote , x ) end define

lgcdef lgccharge of verifier lgcvar end verifier as "0" enddef

unpacker " end unpacker

Index 323 of page base

lgcdef lgcname of unpacker lgcvar end unpacker as "unpacker ""! end unpacker" enddef

Define tex show of unpacker x end unpacker as " [ \mathbf{Unpacker\colon} "[ x ]" ]" end define

define macro of unpacker x end unpacker as \ x . expand ( quote macro define unpacker x end unpacker as define unpack of self as x end define end define end quote , x ) end define

lgcdef lgccharge of unpacker lgcvar end unpacker as "0" enddef

renderer " end renderer

Index 324 of page base

lgcdef lgcname of renderer lgcvar end renderer as "renderer ""! end renderer" enddef

Define tex show of renderer x end renderer as " [ \mathbf{Renderer\colon} "[ x ]" ]" end define

define macro of renderer x end renderer as \ x . expand ( quote macro define renderer x end renderer as define render of self as x end define end define end quote , x ) end define

lgcdef lgccharge of renderer lgcvar end renderer as "0" enddef

expander " end expander

Index 325 of page base

lgcdef lgcname of expander lgcvar end expander as "expander ""! end expander" enddef

Define tex show of expander x end expander as " [ \mathbf{Expander\colon} "[ x ]" ]" end define

define macro of expander x end expander as \ x . expand ( quote macro define expander x end expander as define macro of self as x end define end define end quote , x ) end define

lgcdef lgccharge of expander lgcvar end expander as "0" enddef

ragged right

Index 326 of page base

Define tex use of ragged right as " \raggedright" end define

lgcdef lgcname of ragged right as "ragged right" enddef

Define tex show of ragged right as " \backslash raggedright " end define

lgcdef lgccharge of ragged right as "0" enddef

make macro expanded version ragged right

Index 327 of page base

Define tex use of make macro expanded version ragged right as "". end define

lgcdef lgcname of make macro expanded version ragged right as "make macro expanded version ragged right" enddef

define macro of make macro expanded version ragged right as \ x . expand ( quote macro define make macro expanded version ragged right as ragged right end define end quote , x ) end define

lgcdef lgccharge of make macro expanded version ragged right as "0" enddef

<<>>

Index 328 of page base

lgcdef lgcname of <<>> as "<<>>" enddef

Define tex show of <<>> as " \langle \, \rangle" end define

define value of <<>> as norm true end define

lgcdef lgccharge of <<>> as "0" enddef

<< " >>

Index 329 of page base

lgcdef lgcname of << lgcvar >> as "<< ""! >>" enddef

Define tex show of << x >> as " \langle "[ x ]" \rangle " end define

define macro of << u >> as \ x . tuple1 ( x ) end define

lgcdef lgccharge of << lgcvar >> as "0" enddef

tuple1 ( " )

Index 330 of page base

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

define value of tuple1 ( x ) as norm [x is val : stateexpand ( tuple2 ( x zeroth , x zeroth first ) , x first , x second )] end define

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

tuple2 ( " , " )

Index 331 of page base

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

define value of tuple2 ( t , u ) as norm [t is val : [u is val : if .not. [u r= quote x ,, y end quote] then substitute ( t , quote u :: <<>> end quote , [quote u end quote :: u] :: true ) else substitute ( t , quote x :: y end quote , [quote x end quote :: [u first]] :: [[quote y end quote :: tuple2 ( t , u second )] :: true] )]] end define

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

eager define " as " end define

Index 332 of page base

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

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

define macro of eager define u as v end define as \ x . eager1 ( x ) end define

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

eager1 ( " )

Index 333 of page base

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

define value of eager1 ( x ) as norm [x is val : LET x zeroth BE [t IN LET t first BE [u IN LET t second BE [v IN LET [quote u end quote :: u] :: [[quote w end quote :: eager2 ( t , u tail , v )] :: true] BE [s IN stateexpand ( substitute ( t , quote define value of u as norm w end define end quote , s ) , x first , x second )]]]]] end define

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

eager2 ( " , " , " )

Index 334 of page base

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

define value of eager2 ( t , p , v ) as norm [t is val : [p is val : [v is val : if p atom then v else LET [quote x end quote :: [p head]] :: [[quote v end quote :: eager2 ( t , p tail , v )] :: true] BE [s IN substitute ( t , quote x is val : v end quote , s )]]]] end define

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

eager message define " as " end define

Index 335 of page base

lgcdef lgcname of eager message define lgcvar as lgcvar end define as "eager message define ""! as ""! end define" enddef

Define tex show of eager message define x as y end define as " [ message\ "[ texshow x end texshow ][" : "[ texshow y end texshow ]" ]"] end define

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

lgcdef lgccharge of eager message define lgcvar as lgcvar end define as "0" enddef

late eager define " as " end define

Index 336 of page base

lgcdef lgcname of late eager define lgcvar as lgcvar end define as "late eager define ""! as ""! end define" enddef

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

define macro of late eager define u as v end define as \ x . expand ( quote macro define late eager define u as v end define as eager define u as v end define end define end quote , x ) end define

lgcdef lgccharge of late eager define lgcvar as lgcvar end define as "0" enddef

late unhide " end unhide

Index 337 of page base

lgcdef lgcname of late unhide lgcvar end unhide as "late unhide ""! end unhide" enddef

define macro of late unhide x end unhide as \ x . expand ( quote macro define late unhide x end unhide as x end define end quote , x ) end define

lgcdef lgccharge of late unhide lgcvar end unhide as "0" enddef

late optimized define " as " end define

Index 338 of page base

lgcdef lgcname of late optimized define lgcvar as lgcvar end define as "late optimized define ""! as ""! end define" enddef

Define tex show of late optimized define x as y end define as " ["[ texshow x end texshow ][" \stackrel {Late}{\rightarrow\rightarrow }"[ y ]" ]"] end define

define macro of late optimized define u as v end define as \ x . expand ( quote macro define late optimized define u as v end define as late unhide optimized define value of u as v end define end unhide end define end quote , x ) end define

lgcdef lgccharge of late optimized define lgcvar as lgcvar end define as "0" enddef

macrolet1 ( " )

Index 339 of page base

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

define value of macrolet1 ( x ) as norm [x is val : LET x zeroth BE [t IN LET x first BE [s IN LET x second BE [c IN LET t first BE [u IN LET t third BE [w IN LET u ref BE [r IN LET u idx BE [i IN LET c [[ r :: ["codex" :: [r :: [i :: [0 :: ["macro" :: true]]]]] => macrodefine ( x ) ]] BE [c IN stateexpand ( w , s , c )]]]]]]]]] end define

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

destructure

Index 340 of page base

lgcdef lgcname of destructure as "destructure" enddef

Define tex show of destructure as " dest" end define

lgcdef lgccharge of destructure as "0" enddef

define message of destructure as "destructure" end define

destructure define " as " end define

Index 341 of page base

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

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

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

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

let1 ( " )

Index 342 of page base

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

define value of let1 ( x ) as norm [x is val : LET x zeroth BE [t IN LET x first BE [s IN LET x second BE [c IN LET t first BE [u IN LET t second BE [v IN LET t third BE [w IN LET stateexpand ( u , s , c ) BE [u IN LET stateexpand ( v , s , c ) BE [v IN LET stateexpand ( w , s , c ) BE [w IN LET make-prime ( make-var ( t ) ) BE [x IN LET let2 ( x , u , w , c ) BE [w IN make-let ( quote asterisk end quote , v , w )]]]]]]]]]]]] end define

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

let2 ( " , " , " , " )

Index 343 of page base

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

define value of let2 ( x , p , w , c ) as norm [x is val : [p is val : [w is val : [c is val : LET p ref BE [r IN LET p idx BE [i IN LET c [[ r ]] [[ "codex" ]] [[ r ]] [[ i ]] [[ 0 ]] BE [c prime IN LET c prime [[ "destructure" ]] BE [d IN if d = true then if c prime [[ "value" ]] != true then w else make-let ( p , quote asterisk end quote , w ) else LET let3 ( x , p tail , w , c ) BE [w IN make-let ( x , d third , w )]]]]]]]]] end define

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

let3 ( " , " , " , " )

Index 344 of page base

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

define value of let3 ( x , p prime , w , c ) as norm [x is val : [p prime is val : [w is val : [c is val : if p prime = true then w else LET p prime head BE [p IN LET p prime tail BE [p prime IN LET let3 ( x , p prime , w , c ) BE [w IN LET let2 ( make-prime ( x ) , p , w , c ) BE [w IN LET make-let ( x , make-tail ( x ) , w ) BE [w IN make-let ( quote asterisk end quote , make-head ( x ) , w )]]]]]]]]] end define

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

make-var ( " )

Index 345 of page base

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

define value of make-var ( t ) as norm [t is val : substitute ( t , quote asterisk end quote , true )] end define

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

make-let ( " , " , " )

Index 346 of page base

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

define value of make-let ( u , v , w ) as norm [u is val : [v is val : [w is val : LET [quote u end quote :: u] :: [[quote v end quote :: v] :: [[quote w end quote :: w] :: true]] BE [s IN substitute ( u , quote LET v BE [u IN w] end quote , s )]]]] end define

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

make-prime ( " )

Index 347 of page base

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

define value of make-prime ( x ) as norm [x is val : LET [quote x end quote :: x] :: true BE [s IN substitute ( x , quote x prime end quote , s )]] end define

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

make-head ( " )

Index 348 of page base

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

define value of make-head ( x ) as norm [x is val : LET [quote x end quote :: x] :: true BE [s IN substitute ( x , quote x head end quote , s )]] end define

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

make-tail ( " )

Index 349 of page base

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

define value of make-tail ( x ) as norm [x is val : LET [quote x end quote :: x] :: true BE [s IN substitute ( x , quote x tail end quote , s )]] end define

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

back " quote " end quote

Index 350 of page base

lgcdef lgcname of back lgcvar quote lgcvar end quote as "back ""! quote ""! end quote" enddef

Define tex show of back x quote y end quote as " \lceil_{\!"[ x ][" \,} "[ y ]" \rceil "] end define

define macro of back u quote v end quote as \ x . backquote0 ( x ) end define

lgcdef lgccharge of back lgcvar quote lgcvar end quote as "0" enddef

make-root ( " , " )

Index 351 of page base

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

define value of make-root ( t , x ) as norm [t is val : [x is val : [x ref :: [x idx :: [t debug]]]]] end define

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

make-pair ( " , " , " )

Index 352 of page base

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

define value of make-pair ( t , x , y ) as norm [t is val : [x is val : [y is val : [make-root ( t , quote true :: true end quote ) :: [x :: [y :: true]]]]]] end define

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

make-true ( " )

Index 353 of page base

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

define value of make-true ( t ) as norm [t is val : [make-root ( t , quote true end quote ) :: true]] end define

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

make-quote ( " , " )

Index 354 of page base

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

define value of make-quote ( t , x ) as norm [t is val : [x is val : [make-root ( t , quote quote true end quote end quote ) :: [x :: true]]]] end define

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

make-make-root ( " , " , " )

Index 355 of page base

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

define value of make-make-root ( t , x , y ) as norm [t is val : [x is val : [y is val : [make-root ( t , quote make-root ( true , true ) end quote ) :: [x :: [y :: true]]]]]] end define

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

backquote0 ( " )

Index 356 of page base

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

define value of backquote0 ( x ) as norm [x is val : backquote1 ( x zeroth , x first , x second )] end define

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

backquote1 ( " , " , " )

Index 357 of page base

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

define value of backquote1 ( t , s , c ) as norm [t is val : [s is val : [c is val : backquote2 ( t , stateexpand ( t first , s , c ) , stateexpand ( t second , s , c ) , s , c )]]] end define

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

backquote2 ( " , " , " , " , " )

Index 358 of page base

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

define value of backquote2 ( t , u , v , s , c ) as norm [t is val : [u is val : [v is val : [s is val : [c is val : if v r= quote true unquote end quote then v first else make-pair ( t , make-make-root ( t , u , make-quote ( t , v ) ) , backquote2* ( t , u , v tail , s , c ) )]]]]] end define

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

backquote2* ( " , " , " , " , " )

Index 359 of page base

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

define value of backquote2* ( t , u , v , s , c ) as norm [t is val : [u is val : [v is val : [s is val : [c is val : if v atom then make-true ( t ) else make-pair ( t , backquote2 ( t , u , v head , s , c ) , backquote2* ( t , u , v tail , s , c ) )]]]]] end define

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

text " : " end text

Index 360 of page base

Define tex use of text x : y end text as "text"[ x ]y end define

lgcdef lgcname of text lgcvar : lgcvar end text as "text ""! : ""! end text" enddef

lgcdef lgccharge of text lgcvar : lgcvar end text as "0" enddef

tex ( " )

Index 361 of page base

Define tex use of tex ( x ) as "tex",x end define

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

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

latex ( " )

Index 362 of page base

Define tex use of latex ( x ) as "latex",x end define

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

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

bibtex ( " )

Index 363 of page base

Define tex use of bibtex ( x ) as "bibtex",x end define

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

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

makeindex ( " )

Index 364 of page base

Define tex use of makeindex ( x ) as "makeindex",x end define

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

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

dvipdfm ( " )

Index 365 of page base

Define tex use of dvipdfm ( x ) as "dvipdfm",x end define

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

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

page ( " , " ) title " bib " main text " appendix " end page

Index 366 of page base

Define tex use of page ( x , y ) title t bib b main text m appendix a end page as tex-file ( "text" , "index.html" , "<head><title>"[ t ]["</title></head> <body><h2>"[ t ]"</h2> <p><a href='../index.html'>Up</a></p> <p>Contents: <a href='page.pdf'>Main text</a> <a href='appendix.pdf'>Appendix</a> <a href='chores.pdf'>Chores</a> </p> <p><address>The <a href=""!http://logiweb.eu/""!>Logiweb</a> compiler</address></p> </body> "] ) ,, [tex-file ( "text" , "page.bib" , b ) ,, [tex-file ( "text" , "page.tex" , "\documentclass[fleqn]{article} % Include definitions generated by the Logiweb compiler \input{lgwinclude} % Make latexsym characters available \usepackage{latexsym} % Ensure reasonable rendering of strings \everymath{\rm} \everydisplay{\rm} % Enable generation of an index \usepackage{makeidx} \makeindex \newcommand{\intro}[1]{\emph{#1}} \newcommand{\indexintro}[1]{\index{#1}\intro{#1}} % Enable generation of a bibliography \bibliographystyle{plain} % Enable hyperlinks \usepackage[dvipdfm=true]{hyperref} \hypersetup{pdfpagemode=UseNone} \hypersetup{pdfstartpage=1} \hypersetup{pdfstartview=FitBH} \hypersetup{pdfpagescrop={120 80 490 730}} \hypersetup{pdftitle="[ t ]["} \hypersetup{colorlinks=true} % Construct for listing statements with associated explanations \newenvironment{statements}{\begin{list}{}{ \setlength{\leftmargin}{5em} \setlength{\itemindent}{-5em}}}{\end{list}} \begin{document} "[ m ]" \end{document} "] ) ,, [tex-command ( "latex" , "page" ) ,, [tex-command ( "bibtex" , "page" ) ,, [tex-command ( "makeindex" , "page" ) ,, [tex-command ( "latex" , "page" ) ,, [tex-command ( "latex" , "page" ) ,, [tex-command ( "dvipdfm" , "page" ) ,, [tex-file ( "text" , "appendix.tex" , "\documentclass[fleqn]{article} % Include definitions generated by the Logiweb compiler \input{lgwinclude} % Make latexsym characters available \usepackage{latexsym} % Ensure reasonable rendering of strings \everymath{\rm} \everydisplay{\rm} % Enable generation of an index \usepackage{makeidx} \makeindex \newcommand{\intro}[1]{\emph{#1}} \newcommand{\indexintro}[1]{\index{#1}\intro{#1}} % Enable generation of a bibliography \bibliographystyle{plain} % Enable hyperlinks \usepackage[dvipdfm=true]{hyperref} \hypersetup{pdfpagemode=UseNone} \hypersetup{pdfstartpage=1} \hypersetup{pdfstartview=FitBH} \hypersetup{pdfpagescrop={120 80 490 730}} \hypersetup{pdftitle="[ t ][" - appendix} \hypersetup{colorlinks=true} % Construct for listing statements with associated explanations \newenvironment{statements}{\begin{list}{}{ \setlength{\leftmargin}{5em} \setlength{\itemindent}{-5em}}}{\end{list}} \begin{document} "[ a ]" \end{document} "] ) ,, [tex-command ( "latex" , "appendix" ) ,, [tex-command ( "latex" , "appendix" ) ,, [tex-command ( "latex" , "appendix" ) ,, [tex-command ( "dvipdfm" , "appendix" ) ,, [tex-file ( "text" , "chores.tex" , "\documentclass[fleqn]{article} % Include definitions generated by the Logiweb compiler \input{lgwinclude} % Make latexsym characters available \usepackage{latexsym} % Ensure reasonable rendering of strings \everymath{\rm} \everydisplay{\rm} % Enable generation of an index \usepackage{makeidx} \makeindex \newcommand{\intro}[1]{\emph{#1}} \newcommand{\indexintro}[1]{\index{#1}\intro{#1}} % Enable generation of a bibliography \bibliographystyle{plain} % Enable hyperlinks \usepackage[dvipdfm=true]{hyperref} \hypersetup{pdfpagemode=UseNone} \hypersetup{pdfstartpage=1} \hypersetup{pdfstartview=FitBH} \hypersetup{pdfpagescrop={120 80 490 730}} \hypersetup{pdftitle="[ t ][" - chores} \hypersetup{colorlinks=true} % Construct for listing statements with associated explanations \newenvironment{statements}{\begin{list}{}{ \setlength{\leftmargin}{5em} \setlength{\itemindent}{-5em}}}{\end{list}} \begin{document} \title{"[ t ]["} \author{The \href{http://logiweb.eu/}{Logiweb} compiler} \maketitle \tableofcontents \section{Name definitions} \begin{flushleft} $ "[ x ][" $ \end{flushleft} \section{Charge definitions} \begin {flushleft} $ "[ y ]" $ \end {flushleft} \end{document} "]]] ) ,, [tex-command ( "latex" , "chores" ) ,, [tex-command ( "latex" , "chores" ) ,, [tex-command ( "latex" , "chores" ) ,, tex-command ( "dvipdfm" , "chores" )]]]]]]]]]]]]]]]]] end define

lgcdef lgcname of page ( lgcvar , lgcvar ) title lgcvar bib lgcvar main text lgcvar appendix lgcvar end page as "page ( ""! , ""! ) title ""! bib ""! main text ""! appendix ""! end page" enddef

Define tex show of page ( x , y ) title t bib b main text m appendix a end page as " page ( "[ x ][" , "[ y ][" , "[ t ][" , "[ b ][" , "[ m ][" , "[ a ]" ) "]]]]] end define

define macro of page ( x , y ) title t bib b main text m appendix a end page as \ z . page1 ( z ) end define

lgcdef lgccharge of page ( lgcvar , lgcvar ) title lgcvar bib lgcvar main text lgcvar appendix lgcvar end page as "0" enddef

page1 ( " )

Index 367 of page base

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

define value of page1 ( z ) as norm [z is val : LET z zeroth BE [t IN LET z first BE [s IN LET z second BE [c IN LET t second BE [y IN LET stateexpand ( t fifth , s , c ) BE [m IN LET stateexpand ( t sixth , s , c ) BE [a IN LET show quote page ( x , y ) title t bib b main text m appendix a end page end quote end show BE [p IN [[p ref :: [p idx :: [t debug]]] :: [t first :: [y :: [t third :: [t fourth :: [m :: [a :: true]]]]]]]]]]]]]]] end define

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

tex-file ( " , " , " )

Index 368 of page base

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

lgcdef lgccharge of tex-file ( lgcvar , lgcvar , lgcvar ) as "0" enddef

tex-command ( " , " )

Index 369 of page base

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

lgcdef lgccharge of tex-command ( lgcvar , lgcvar ) as "0" enddef

quit request ( " )

Index 370 of page base

lgcdef lgcname of quit request ( lgcvar ) as "quit request ( ""! )" enddef

define value of quit request ( x ) as norm [x is val : [[0 :: ["quit" :: <<>>]] :: [x :: <<>>]]] end define

lgcdef lgccharge of quit request ( lgcvar ) as "0" enddef

boot event ( " , " , " , " )

Index 371 of page base

lgcdef lgcname of boot event ( lgcvar , lgcvar , lgcvar , lgcvar ) as "boot event ( ""! , ""! , ""! , ""! )" enddef

define value of boot event ( a , e , c , s ) as norm [a is val : [e is val : [c is val : [s is val : [[0 :: ["boot" :: <<>>]] :: [a :: [e :: [c :: [s :: <<>>]]]]]]]]] end define

lgcdef lgccharge of boot event ( lgcvar , lgcvar , lgcvar , lgcvar ) as "0" enddef

write request ( " )

Index 372 of page base

lgcdef lgcname of write request ( lgcvar ) as "write request ( ""! )" enddef

define value of write request ( s ) as norm [s is val : [[0 :: ["write" :: <<>>]] :: [s :: <<>>]]] end define

lgcdef lgccharge of write request ( lgcvar ) as "0" enddef

writeln request ( " )

Index 373 of page base

lgcdef lgcname of writeln request ( lgcvar ) as "writeln request ( ""! )" enddef

define value of writeln request ( x ) as norm [x is val : write request ( x :: LF )] end define

lgcdef lgccharge of writeln request ( lgcvar ) as "0" enddef

println ( " )

Index 374 of page base

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

define value of println ( x ) as norm [x is val : print ( x :: LF )] end define

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

read request

Index 375 of page base

lgcdef lgcname of read request as "read request" enddef

define value of read request as norm [[0 :: ["read" :: <<>>]] :: <<>>] end define

lgcdef lgccharge of read request as "0" enddef

read reply ( " )

Index 376 of page base

lgcdef lgcname of read reply ( lgcvar ) as "read reply ( ""! )" enddef

define value of read reply ( c ) as norm [c is val : [[0 :: ["read" :: <<>>]] :: [c :: <<>>]]] end define

lgcdef lgccharge of read reply ( lgcvar ) as "0" enddef

exec request ( " , " )

Index 377 of page base

lgcdef lgcname of exec request ( lgcvar , lgcvar ) as "exec request ( ""! , ""! )" enddef

define value of exec request ( p , h ) as norm [p is val : [h is val : [[0 :: ["exec" :: <<>>]] :: [p :: [h :: <<>>]]]]] end define

lgcdef lgccharge of exec request ( lgcvar , lgcvar ) as "0" enddef

exec reply ( " , " )

Index 378 of page base

lgcdef lgcname of exec reply ( lgcvar , lgcvar ) as "exec reply ( ""! , ""! )" enddef

define value of exec reply ( i , p ) as norm [i is val : [p is val : [[0 :: ["exec" :: <<>>]] :: [i :: [p :: <<>>]]]]] end define

lgcdef lgccharge of exec reply ( lgcvar , lgcvar ) as "0" enddef

extend request ( " , " )

Index 379 of page base

lgcdef lgcname of extend request ( lgcvar , lgcvar ) as "extend request ( ""! , ""! )" enddef

define value of extend request ( r , s ) as norm [r is val : [s is val : [[0 :: ["extend" :: <<>>]] :: [r :: [s :: <<>>]]]]] end define

lgcdef lgccharge of extend request ( lgcvar , lgcvar ) as "0" enddef

extend reply ( " )

Index 380 of page base

lgcdef lgcname of extend reply ( lgcvar ) as "extend reply ( ""! )" enddef

define value of extend reply ( x ) as norm [x is val : [[0 :: ["extend" :: <<>>]] :: [x :: <<>>]]] end define

lgcdef lgccharge of extend reply ( lgcvar ) as "0" enddef

exit interrupt

Index 381 of page base

lgcdef lgcname of exit interrupt as "exit interrupt" enddef

define value of exit interrupt as norm [[0 :: ["exit" :: <<>>]] :: <<>>] end define

lgcdef lgccharge of exit interrupt as "0" enddef

time interrupt

Index 382 of page base

lgcdef lgcname of time interrupt as "time interrupt" enddef

define value of time interrupt as norm [[0 :: ["time" :: <<>>]] :: <<>>] end define

lgcdef lgccharge of time interrupt as "0" enddef

memory interrupt

Index 383 of page base

lgcdef lgcname of memory interrupt as "memory interrupt" enddef

define value of memory interrupt as norm [[0 :: ["memory" :: <<>>]] :: <<>>] end define

lgcdef lgccharge of memory interrupt as "0" enddef

Hello World

Index 384 of page base

lgcdef lgcname of Hello World as "Hello World" enddef

define value of Hello World as norm map ( \ x . [writeln request ( "Hello World" ) :: <<>>] ) end define

lgcdef lgccharge of Hello World as "0" enddef

Echo

Index 385 of page base

lgcdef lgcname of Echo as "Echo" enddef

define value of Echo as norm map ( \ x . Echo1 ( x ) ) end define

lgcdef lgccharge of Echo as "0" enddef

Echo1 ( " )

Index 386 of page base

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

define value of Echo1 ( x ) as norm [x is val : if x atom then read request :: [exec request ( true , Echo ) :: <<>>] else LET x head BE [e IN LET Echo1 ( x tail ) BE [r IN if .not. [e head = [0 :: ["read" :: <<>>]]] then r else if e first = "q" then writeln request ( true ) :: [quit request ( 0 ) :: <<>>] else [write request ( e first ) :: r]]]] end define

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

Eecho

Index 387 of page base

lgcdef lgcname of Eecho as "Eecho" enddef

define value of Eecho as norm map ( \ x . Eecho1 ( x ) ) end define

lgcdef lgccharge of Eecho as "0" enddef

Eecho1 ( " )

Index 388 of page base

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

define value of Eecho1 ( x ) as norm [x is val : if x atom then read request :: [exec request ( true , Eecho ) :: <<>>] else LET x head BE [e IN LET Eecho1 ( x tail ) BE [r IN if .not. [e head = [0 :: ["read" :: <<>>]]] then r else if e first = "q" then writeln request ( true ) :: [quit request ( 0 ) :: <<>>] else [write request ( e first :: [e first] ) :: r]]]] end define

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

verbatim define " as " end define

Index 389 of page base

Define tex use of verbatim define x as y end define as " $ "[ x ][" \stackrel{\bullet}{=} {} $ \begin{verbatim}"[ y ]" \end{verbatim}"] end define

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

define macro of verbatim define x as y end define as \ x . expand ( quote macro define verbatim define x as y end define as ensure math eager define x as show y end show end define end math end define end quote , x ) end define

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

lgcio ( " )

Index 390 of page base

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

define value of lgcio ( c ) as norm [c is val : [quote lgcio ( c ) end quote head :: [c :: <<>>]]] end define

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

EOS

Index 391 of page base

lgcdef lgcname of EOS as "EOS" enddef

define value of EOS as norm bt2vector ( 0 ) end define

lgcdef lgccharge of EOS as "0" enddef

FileWrite

Index 392 of page base

lgcdef lgcname of FileWrite as "FileWrite" enddef

define value of FileWrite as norm bt2vector ( 1 ) end define

lgcdef lgccharge of FileWrite as "0" enddef

FileWriteExec

Index 393 of page base

lgcdef lgcname of FileWriteExec as "FileWriteExec" enddef

define value of FileWriteExec as norm bt2vector ( 2 ) end define

lgcdef lgccharge of FileWriteExec as "0" enddef

FileRead

Index 394 of page base

lgcdef lgcname of FileRead as "FileRead" enddef

define value of FileRead as norm bt2vector ( 3 ) end define

lgcdef lgccharge of FileRead as "0" enddef

FileRm

Index 395 of page base

lgcdef lgcname of FileRm as "FileRm" enddef

define value of FileRm as norm bt2vector ( 4 ) end define

lgcdef lgccharge of FileRm as "0" enddef

FileSymlink

Index 396 of page base

lgcdef lgcname of FileSymlink as "FileSymlink" enddef

define value of FileSymlink as norm bt2vector ( 5 ) end define

lgcdef lgccharge of FileSymlink as "0" enddef

FileReadLink

Index 397 of page base

lgcdef lgcname of FileReadLink as "FileReadLink" enddef

define value of FileReadLink as norm bt2vector ( 6 ) end define

lgcdef lgccharge of FileReadLink as "0" enddef

FileMkdir

Index 398 of page base

lgcdef lgcname of FileMkdir as "FileMkdir" enddef

define value of FileMkdir as norm bt2vector ( 7 ) end define

lgcdef lgccharge of FileMkdir as "0" enddef

FileRmdir

Index 399 of page base

lgcdef lgcname of FileRmdir as "FileRmdir" enddef

define value of FileRmdir as norm bt2vector ( 8 ) end define

lgcdef lgccharge of FileRmdir as "0" enddef

FileDir

Index 400 of page base

lgcdef lgcname of FileDir as "FileDir" enddef

define value of FileDir as norm bt2vector ( 9 ) end define

lgcdef lgccharge of FileDir as "0" enddef

FileType

Index 401 of page base

lgcdef lgcname of FileType as "FileType" enddef

define value of FileType as norm bt2vector ( %% %1 %0 ) end define

lgcdef lgccharge of FileType as "0" enddef

FileTypeRead

Index 402 of page base

lgcdef lgcname of FileTypeRead as "FileTypeRead" enddef

define value of FileTypeRead as norm bt2vector ( %% %1 %1 ) end define

lgcdef lgccharge of FileTypeRead as "0" enddef

TextWrite

Index 403 of page base

lgcdef lgcname of TextWrite as "TextWrite" enddef

define value of TextWrite as norm bt2vector ( %% %1 %2 ) end define

lgcdef lgccharge of TextWrite as "0" enddef

TextWriteExec

Index 404 of page base

lgcdef lgcname of TextWriteExec as "TextWriteExec" enddef

define value of TextWriteExec as norm bt2vector ( %% %1 %3 ) end define

lgcdef lgccharge of TextWriteExec as "0" enddef

FileGetCwd

Index 405 of page base

lgcdef lgcname of FileGetCwd as "FileGetCwd" enddef

define value of FileGetCwd as norm bt2vector ( %% %1 %4 ) end define

lgcdef lgccharge of FileGetCwd as "0" enddef

UnixTime

Index 406 of page base

lgcdef lgcname of UnixTime as "UnixTime" enddef

define value of UnixTime as norm bt2vector ( %% %2 %0 ) end define

lgcdef lgccharge of UnixTime as "0" enddef

Demonize

Index 407 of page base

lgcdef lgcname of Demonize as "Demonize" enddef

define value of Demonize as norm bt2vector ( %% %3 %0 ) end define

lgcdef lgccharge of Demonize as "0" enddef

Execlp1

Index 408 of page base

lgcdef lgcname of Execlp1 as "Execlp1" enddef

define value of Execlp1 as norm bt2vector ( %% %3 %1 ) end define

lgcdef lgccharge of Execlp1 as "0" enddef

TcpQuery

Index 409 of page base

lgcdef lgcname of TcpQuery as "TcpQuery" enddef

define value of TcpQuery as norm bt2vector ( %% %4 %0 ) end define

lgcdef lgccharge of TcpQuery as "0" enddef

FileTypeNonexistent

Index 410 of page base

lgcdef lgcname of FileTypeNonexistent as "FileTypeNonexistent" enddef

define value of FileTypeNonexistent as norm bt2vector ( 0 ) end define

lgcdef lgccharge of FileTypeNonexistent as "0" enddef

FileTypeOther

Index 411 of page base

lgcdef lgcname of FileTypeOther as "FileTypeOther" enddef

define value of FileTypeOther as norm bt2vector ( 1 ) end define

lgcdef lgccharge of FileTypeOther as "0" enddef

FileTypeRegular

Index 412 of page base

lgcdef lgcname of FileTypeRegular as "FileTypeRegular" enddef

define value of FileTypeRegular as norm bt2vector ( 2 ) end define

lgcdef lgccharge of FileTypeRegular as "0" enddef

FileTypeDirectory

Index 413 of page base

lgcdef lgcname of FileTypeDirectory as "FileTypeDirectory" enddef

define value of FileTypeDirectory as norm bt2vector ( 3 ) end define

lgcdef lgccharge of FileTypeDirectory as "0" enddef

FileTypeLink

Index 414 of page base

lgcdef lgcname of FileTypeLink as "FileTypeLink" enddef

define value of FileTypeLink as norm bt2vector ( 4 ) end define

lgcdef lgccharge of FileTypeLink as "0" enddef

NULL

Index 415 of page base

lgcdef lgcname of NULL as "NULL" enddef

define value of NULL as norm bt2vector ( 0 ) end define

lgcdef lgccharge of NULL as "0" enddef

TAB

Index 416 of page base

lgcdef lgcname of TAB as "TAB" enddef

define value of TAB as norm bt2vector ( 9 ) end define

lgcdef lgccharge of TAB as "0" enddef

LF

Index 417 of page base

lgcdef lgcname of LF as "LF" enddef

define value of LF as norm bt2vector ( %% %1 %0 ) end define

lgcdef lgccharge of LF as "0" enddef

FF

Index 418 of page base

lgcdef lgcname of FF as "FF" enddef

define value of FF as norm bt2vector ( %% %1 %2 ) end define

lgcdef lgccharge of FF as "0" enddef

CR

Index 419 of page base

lgcdef lgcname of CR as "CR" enddef

define value of CR as norm bt2vector ( %% %1 %3 ) end define

lgcdef lgccharge of CR as "0" enddef

SP

Index 420 of page base

lgcdef lgcname of SP as "SP" enddef

define value of SP as norm !" " end define

lgcdef lgccharge of SP as "0" enddef

QQ

Index 421 of page base

lgcdef lgcname of QQ as "QQ" enddef

define value of QQ as norm !""-""!" end define

lgcdef lgccharge of QQ as "0" enddef

V128

Index 422 of page base

lgcdef lgcname of V128 as "V128" enddef

define value of V128 as norm bt2vector ( %% %1 %2 %8 ) end define

lgcdef lgccharge of V128 as "0" enddef

V255

Index 423 of page base

lgcdef lgcname of V255 as "V255" enddef

define value of V255 as norm bt2vector ( %% %2 %5 %5 ) end define

lgcdef lgccharge of V255 as "0" enddef

CRLF

Index 424 of page base

lgcdef lgcname of CRLF as "CRLF" enddef

define value of CRLF as norm [CR :: LF] end define

lgcdef lgccharge of CRLF as "0" enddef

LFCR

Index 425 of page base

lgcdef lgcname of LFCR as "LFCR" enddef

define value of LFCR as norm [LF :: CR] end define

lgcdef lgccharge of LFCR as "0" enddef

''

Index 426 of page base

lgcdef lgcname of '' as "''" enddef

define value of '' as norm vt2vector ( true ) end define

lgcdef lgccharge of '' as "0" enddef

septet*2card ( " , " )

Index 427 of page base

lgcdef lgcname of septet*2card ( lgcvar , lgcvar ) as "septet*2card ( ""! , ""! )" enddef

define value of septet*2card ( r , s ) as norm [r is val : [s is val : if s atom then r else septet*2card ( s head + [septet-base * r] , s tail )]] end define

lgcdef lgccharge of septet*2card ( lgcvar , lgcvar ) as "0" enddef

septet-base

Index 428 of page base

lgcdef lgcname of septet-base as "septet-base" enddef

define value of septet-base as norm [%% %1 %2 %8] end define

lgcdef lgccharge of septet-base as "0" enddef

parse-card ( " )

Index 429 of page base

lgcdef lgcname of parse-card ( lgcvar ) as "parse-card ( ""! )" enddef

define value of parse-card ( v ) as norm [v is val : parse-card1 ( true , v )] end define

lgcdef lgccharge of parse-card ( lgcvar ) as "0" enddef

parse-card1 ( " , " )

Index 430 of page base

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

define value of parse-card1 ( r , v ) as norm [r is val : [v is val : if v atom then exception 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 [b IN LET asterisk prime head BE [asterisk IN LET asterisk prime tail BE [asterisk prime IN LET asterisk BE [v IN if [b < NULL] .or. [b > V255] then exception else if b < V128 then septet*2card ( 0 , [b - NULL] :: r ) :: v else parse-card1 ( [b - V128] :: r , v )]]]]]]]]]] end define

lgcdef lgccharge of parse-card1 ( lgcvar , lgcvar ) as "0" enddef

exp10 ( " )

Index 431 of page base

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

define value of exp10 ( e ) as norm [e is val : if e = 0 then 1 else [%% %1 %0 * exp10 ( e - 1 )]] end define

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

parse-unixTime ( " )

Index 432 of page base

lgcdef lgcname of parse-unixTime ( lgcvar ) as "parse-unixTime ( ""! )" enddef

define value of parse-unixTime ( v ) as norm [v is val : LET parse-card ( v first ) 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 [f IN LET asterisk prime head BE [asterisk IN LET asterisk prime tail BE [asterisk prime IN LET asterisk BE [v IN LET parse-card ( 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 [s IN LET asterisk prime head BE [asterisk IN LET asterisk prime tail BE [asterisk prime IN LET asterisk BE [v IN LET parse-card ( 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 [e IN LET asterisk prime head BE [asterisk IN LET asterisk prime tail BE [asterisk prime IN LET asterisk BE [v IN [[[s * exp10 ( e )] + f] :: [e :: <<>>]]]]]]]]]]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of parse-unixTime ( lgcvar ) as "0" enddef

make-card ( " )

Index 433 of page base

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

define value of make-card ( c ) as norm [c is val : if c < [%% %1 %2 %8] then bt2vector ( c ) else [bt2vector ( [c mod [%% %1 %2 %8]] + [%% %1 %2 %8] ) :: make-card ( c div [%% %1 %2 %8] )]] end define

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

fileWrite ( " , " )

Index 434 of page base

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

define value of fileWrite ( p , c ) as norm [p is val : [c is val : lgcio ( FileWrite :: [p :: [EOS :: c]] )]] end define

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

fileWriteExec ( " , " )

Index 435 of page base

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

define value of fileWriteExec ( p , c ) as norm [p is val : [c is val : lgcio ( FileWriteExec :: [p :: [EOS :: c]] )]] end define

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

fileRead ( " )

Index 436 of page base

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

define value of fileRead ( p ) as norm [p is val : lgcio ( FileRead :: [p :: EOS] )] end define

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

fileRm ( " )

Index 437 of page base

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

define value of fileRm ( p ) as norm [p is val : lgcio ( FileRm :: [p :: EOS] )] end define

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

fileSymlink ( " , " )

Index 438 of page base

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

define value of fileSymlink ( p , l ) as norm [p is val : [l is val : lgcio ( FileSymlink :: [p :: [EOS :: [l :: EOS]]] )]] end define

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

fileReadLink ( " )

Index 439 of page base

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

define value of fileReadLink ( l ) as norm [l is val : lgcio ( FileReadLink :: [l :: EOS] )] end define

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

fileMkdir ( " )

Index 440 of page base

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

define value of fileMkdir ( p ) as norm [p is val : lgcio ( FileMkdir :: [p :: EOS] )] end define

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

fileRmdir ( " )

Index 441 of page base

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

define value of fileRmdir ( p ) as norm [p is val : lgcio ( FileRmdir :: [p :: EOS] )] end define

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

fileDir ( " )

Index 442 of page base

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

define value of fileDir ( p ) as norm [p is val : lgcio ( FileDir :: [p :: EOS] )] end define

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

fileType ( " )

Index 443 of page base

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

define value of fileType ( p ) as norm [p is val : lgcio ( FileType :: [p :: EOS] )] end define

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

fileTypeRead ( " )

Index 444 of page base

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

define value of fileTypeRead ( p ) as norm [p is val : lgcio ( FileTypeRead :: [p :: EOS] )] end define

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

textWrite ( " , " , " )

Index 445 of page base

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

define value of textWrite ( p , n , c ) as norm [p is val : [n is val : [c is val : lgcio ( TextWrite :: [p :: [EOS :: [n :: [EOS :: c]]]] )]]] end define

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

textWriteExec ( " , " , " )

Index 446 of page base

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

define value of textWriteExec ( p , n , c ) as norm [p is val : [n is val : [c is val : lgcio ( TextWriteExec :: [p :: [EOS :: [n :: [EOS :: c]]]] )]]] end define

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

fileGetCwd

Index 447 of page base

lgcdef lgcname of fileGetCwd as "fileGetCwd" enddef

define value of fileGetCwd as norm lgcio ( FileGetCwd ) end define

lgcdef lgccharge of fileGetCwd as "0" enddef

unixTime

Index 448 of page base

lgcdef lgcname of unixTime as "unixTime" enddef

define value of unixTime as norm lgcio ( UnixTime ) end define

lgcdef lgccharge of unixTime as "0" enddef

demonize ( " , " , " )

Index 449 of page base

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

define value of demonize ( l , p , u ) as norm [l is val : [p is val : [u is val : lgcio ( Demonize :: [l :: [EOS :: [p :: [EOS :: [u :: EOS]]]]] )]]] end define

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

execlp1 ( " , " , " )

Index 450 of page base

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

define value of execlp1 ( d , p , a ) as norm [d is val : [p is val : [a is val : lgcio ( Execlp1 :: [d :: [EOS :: [p :: [EOS :: [a :: EOS]]]]] )]]] end define

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

tcpQuery ( " , " , " , " , " )

Index 451 of page base

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

define value of tcpQuery ( d , p , m , e , q ) as norm [d is val : [p is val : [m is val : [e is val : [q is val : LET floor ( m , exp10 ( e ) ) BE [v IN lgcio ( TcpQuery :: [d :: [EOS :: [make-card ( p ) :: [make-card ( v head ) :: [make-card ( v tail ) :: [make-card ( e ) :: q]]]]]] )]]]]]] end define

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

lgcio-interface

Index 452 of page base

lgcdef lgcname of lgcio-interface as "lgcio-interface" enddef

define value of lgcio-interface as norm show " /* The lgcio interface provides all the input/output facilities needed by the Logiweb lgc compiler. */ #include <stdio.h> #include <errno.h> #include <string.h> #include <stdlib.h> #include <fcntl.h> #include <unistd.h> #include <pwd.h> #include <dirent.h> #include <netdb.h> #include <sys/types.h> #include <sys/stat.h> #include <sys/time.h> #include <sys/socket.h> #include <sys/select.h> #include <sys/wait.h> #ifdef __CYGWIN__ #include <process.h> #include <cygwin/in.h> #endif /* __CYGWIN__ */ #define TRUE 1 #define FALSE 0 #define PUT0 0 #define PUT1 1 #define GET0 2 #define GET1 3 #define BUFSIZE 1048576 #define S_rw_r_r S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH /* PATHSIZE is _POSIX_PATH_MAX, so a path of this size is supported on * all POSIX platforms. * We do not want to depend on _POSIX_PATH_MAX being defined, however */ #define PATHSIZE 256 #define FileWrite 1 #define FileWriteExec 2 #define FileRead 3 #define FileRm 4 #define FileSymlink 5 #define FileReadLink 6 #define FileMkdir 7 #define FileRmdir 8 #define FileDir 9 #define FileType 10 #define FileTypeRead 11 #define TextWrite 12 #define TextWriteExec 13 #define FileGetCwd 14 #define UnixTime 20 #define Demonize 30 #define Execlp1 31 #define TcpQuery 40 #define FILE_TYPE_NONEXISTENT 0 #define FILE_TYPE_OTHER 1 #define FILE_TYPE_REGULAR 2 #define FILE_TYPE_DIRECTORY 3 #define FILE_TYPE_LINK 4 /* Error handling */ void die(char *msg){ printf(""!%s\n""!,msg); exit(0);} void perror1(char* msg){ printf(""!%s: %s\n""!,msg,strerror(errno));} void pdie(char *msg){ perror1(msg); exit(0);} void Pdie(char *msg){ perror(msg); exit(-1);} #define PDIE2(x) strcpy(pdiemsg2,x) char pdiemsg2[BUFSIZE+1]; void pdie2(char *msg1,char *msg2){ perror1(msg1); printf(""!%s: %s\n""!,msg2,pdiemsg2); exit(0);} #define PDIE3(x,y) strcpy(pdiemsg2,x);strcpy(pdiemsg3,y) char pdiemsg3[BUFSIZE+1]; void pdie3(char *msg1,char *msg2,char *msg3){ perror1(msg1); printf(""!%s: %s\n""!,msg2,pdiemsg2); printf(""!%s: %s\n""!,msg3,pdiemsg3); exit(0);} #define PDIE4(x,y,z) strcpy(pdiemsg2,x);strcpy(pdiemsg3,y);strcpy(pdiemsg4,z) char pdiemsg4[BUFSIZE+1]; void pdie4(char *msg1,char *msg2,char *msg3,char *msg4){ perror1(msg1); printf(""!%s: %s\n""!,msg2,pdiemsg2); printf(""!%s: %s\n""!,msg3,pdiemsg3); printf(""!%s: %s\n""!,msg4,pdiemsg4); exit(0);} /* Argument handling */ int skipString(char buffer[],int bufsize,int bufpnt,char *msg){ char *pnt=memchr(buffer+bufpnt,0,bufsize-bufpnt); if(pnt==NULL) die(msg); return (pnt-buffer)+1;} int skipInt(char buffer[],int bufsize,int bufpnt,char *msg){ char *pnt; for(pnt=buffer+bufpnt;(pnt-buffer)<bufsize;pnt++) if(((*pnt)&128)==0) return (pnt-buffer)+1; die(msg);} int getInt(char *buffer){ if(((*buffer)&128)==0) return *buffer; return *buffer&127+128*getInt(buffer+1);} /* Write file */ int fileWrite2(int fd,char *pnt,char *end){ int length; while(pnt!=end){ length=write(fd,pnt,end-pnt); if(length<0) pdie2(""!fileWrite()/write()""!,""!path""!); pnt+=length;}} int fileWrite1(int state,char buffer[],int bufsize,mode_t mode){ static int fd; int bufpnt=0; switch(state){ case PUT0: bufpnt=skipString(buffer,bufsize,1, ""!fileWrite(): invalid path name""!); fd=creat(buffer+1,mode); PDIE2(buffer+1); if(fd<0) pdie2(""!fileWrite()/open()""!,""!path""!); case PUT1: fileWrite2(fd,buffer+bufpnt,buffer+bufsize); /* while(bufpnt<bufsize){ length=write(fd,buffer+bufpnt,bufsize-bufpnt); if(length<0) pdie2(""!fileWrite()/write()""!,""!path""!); bufpnt+=length;} */ return 0; case GET0: if(close(fd)!=0) pdie2(""!fileWrite()/close()""!,""!path""!); case GET1: return 0;}} int fileWrite(int state,char buffer[],int bufsize){ return fileWrite1(state,buffer,bufsize,0666);} int fileWriteExec(int state,char buffer[],int bufsize){ return fileWrite1(state,buffer,bufsize,0777);} /* Read file */ int fileRead(int state,char buffer[],int bufsize){ static int fd=-1; ssize_t length; switch(state){ case PUT0: skipString(buffer,bufsize,1, ""!fileRead(): invalid path name""!); if(fd>=0) close(fd); fd=open(buffer+1,O_RDONLY); PDIE2(buffer+1); if(fd<0) pdie2(""!fileRead()/open()""!,""!path""!); case PUT1: return 0; case GET0: case GET1: if(fd<0) return 0; length=read(fd,buffer,BUFSIZE); if(length<0) pdie2(""!fileRead()/read()""!,""!path""!); if(length>0) return length; if(close(fd)!=0) pdie2(""!fileRead()/close()""!,""!path""!); fd=-1; return 0;}} /* Remove file */ int fileRm(int state,char buffer[],int bufsize){ switch(state){ case PUT0: skipString(buffer,bufsize,1,""!fileRm(): invalid path name""!); PDIE2(buffer+1); if(unlink(buffer+1)&&errno!=ENOENT) pdie2(""!fileRm()/unlink()""!,""!path""!); case PUT1: case GET0: case GET1: return 0;}} /* Symlink */ int fileSymlink(int state,char buffer[],int bufsize){ int arg1,arg2; switch(state){ case PUT0: arg1=1; arg2=skipString(buffer,bufsize,arg1, ""!fileSymlink(): invalid arguments""!); skipString(buffer,bufsize,arg2, ""!fileSymlink(): invalid arguments""!); PDIE3(buffer+arg1,buffer+arg2); if(symlink(buffer+arg1,buffer+arg2)) pdie3(""!fileSymlink()/symlink()""!,""!dest""!,""!link""!); case PUT1: case GET0: case GET1: return 0;}} /* Read link */ int fileReadLink(int state,char buffer[],int bufsize){ int length; static char path[PATHSIZE]; switch(state){ case PUT0: length=skipString(buffer,bufsize,1, ""!fileReadLink(): invalid path name""!); if(length-1>PATHSIZE) die(""!fileReadLink(): invalid path""!); PDIE2(buffer+1); strcpy(path,buffer+1); case PUT1: case GET1: return 0; case GET0: length=readlink(path,buffer,bufsize); if(length<0) pdie2(""!fileReadLink()/readlink()""!,""!path""!); if(length>=bufsize) die(""!fileReadLink(): link too long""!); return length;}} /* Make directory */ int fileMkdir(int state,char buffer[],int bufsize){ char *bufpnt; int result; switch(state){ case PUT0: skipString(buffer,bufsize,1, ""!fileMkdir(): invalid path name""!); PDIE2(buffer+1); result=0; if(buffer[1]==0) return 0; for(bufpnt=buffer+2;*bufpnt!=0;bufpnt++) if(*bufpnt=='/'){*bufpnt=0;result=mkdir(buffer+1,0777);*bufpnt='/';} if(result<0&&errno!=EEXIST) pdie2(""!fileMkdir()/mkdir()""!,""!path""!); case PUT1: case GET0: case GET1: return 0;}} /* Remove directory */ int fileRmdir(int state,char buffer[],int bufsize){ switch(state){ case PUT0: skipString(buffer,bufsize,1, ""!fileRmdir(): invalid path name""!); PDIE2(buffer+1); if(rmdir(buffer+1)<0&&errno!=ENOENT){ pdie2(""!fileRmdir()/rmdir()""!,""!path""!);} case PUT1: case GET0: case GET1: return 0;}} /* Read directory */ int fileDir(int state,char buffer[],int bufsize){ static DIR *dir=NULL; struct dirent *entry; size_t length; switch(state){ case PUT0: skipString(buffer,bufsize,1, ""!fileDir(): invalid path name""!); if(dir!=NULL){if(closedir(dir)<0) pdie(""!fileDir()/closedir()""!);} dir=opendir(buffer+1); PDIE2(buffer+1); if(dir==NULL) pdie2(""!fileDir()/opendir()""!,""!path""!); case PUT1: return 0; case GET0: case GET1: if(dir==NULL) return 0; errno=0; entry=readdir(dir); if(errno!=0) pdie2(""!fileDir()/readdir()""!,""!path""!); if(entry==NULL){ if(closedir(dir)<0) pdie2(""!fileDir()/closedir()""!,""!path""!); dir=NULL; return 0;} length=strlen(entry->d_name); if(length+1>bufsize) die(""!fileDir(): invalid directory entry""!); strcpy(buffer,entry->d_name); return length+1;}} /* Query file existence and type */ int fileType(int state,char buffer[],int bufsize){ struct stat buf; static char result; switch(state){ case PUT0: skipString(buffer,bufsize,1, ""!fileType(): invalid path name""!); PDIE2(buffer+1); if(lstat(buffer+1,&buf)<0){ if(errno==ENOENT) result=FILE_TYPE_NONEXISTENT; else pdie2(""!fileType()/lstat()""!,""!path""!); return 0;} if(S_ISREG(buf.st_mode)) result=FILE_TYPE_REGULAR; else if(S_ISDIR(buf.st_mode)) result=FILE_TYPE_DIRECTORY; else if(S_ISLNK(buf.st_mode)) result=FILE_TYPE_LINK; else result=FILE_TYPE_OTHER; case PUT1: case GET1: return 0; case GET0: buffer[0]=result; return 1;}} /* Read file if it exists */ int fileTypeRead(int state,char buffer[],int bufsize){ struct stat buf; static int fd=-1; ssize_t length; switch(state){ case PUT0: skipString(buffer,bufsize,1, ""!fileTypeRead(): invalid path name""!); if(fd>=0) close(fd); fd=-1; PDIE2(buffer+1); if(stat(buffer+1,&buf)<0){ if(errno==ENOENT) return 0; else pdie2(""!fileType()/lstat()""!,""!path""!);} if(S_ISDIR(buf.st_mode)) return 0; fd=open(buffer+1,O_RDONLY); case PUT1: return 0; case GET0: if(fd<0) {buffer[0]=FILE_TYPE_NONEXISTENT; return 1;} buffer[0]=FILE_TYPE_REGULAR; length=read(fd,buffer+1,BUFSIZE-1); if(length<0) pdie2(""!fileTypeRead()/read()""!,""!path""!); if(length>0) return length+1; if(close(fd)!=0) pdie2(""!fileTypeRead()/close()""!,""!path""!); fd=-1; return 1; case GET1: if(fd<0) return 0; length=read(fd,buffer,BUFSIZE); if(length<0) pdie2(""!fileTypeRead()/read()""!,""!path""!); if(length>0) return length; if(close(fd)!=0) pdie2(""!fileTypeRead()/close()""!,""!path""!); fd=-1; return 0;}} /* Write text file */ int textWrite1(int state,char buffer[],int bufsize,mode_t mode){ int arg1,arg2; static int fd; int bufpnt=0; int length; static char newlineseq[BUFSIZE+1]; static int newlinelength; static int ignore; int p; switch(state){ case PUT0: arg1=1; arg2=skipString(buffer,bufsize,arg1, ""!textWrite(): invalid path name""!); bufpnt=skipString(buffer,bufsize,arg2, ""!textWrite(): invalid newline sequence""!); strcpy(newlineseq,buffer+arg2); newlinelength=strlen(newlineseq); ignore=256; fd=creat(buffer+arg1,mode); PDIE2(buffer+arg1); if(fd<0) pdie2(""!textWrite()/open()""!,""!path""!); case PUT1: while(bufpnt<bufsize){ if(buffer[bufpnt]==ignore){ bufpnt++; ignore=256;} if(buffer[bufpnt]==10){ fileWrite2(fd,newlineseq,newlineseq+newlinelength); bufpnt++; ignore=13;} else if(buffer[bufpnt]==13){ fileWrite2(fd,newlineseq,newlineseq+newlinelength); bufpnt++; ignore=10;} else{ for(p=bufpnt+1;p<bufsize&&buffer[p]!=10&&buffer[p]!=13;p++); fileWrite2(fd,buffer+bufpnt,buffer+p); bufpnt=p; ignore=256;}} return 0; case GET0: if(close(fd)!=0) pdie2(""!textWrite()/close()""!,""!path""!); case GET1: return 0;}} int textWrite(int state,char buffer[],int bufsize){ return textWrite1(state,buffer,bufsize,0666);} int textWriteExec(int state,char buffer[],int bufsize){ return textWrite1(state,buffer,bufsize,0777);} /* Get Current Working Directory */ int fileGetCwd(int state,char buffer[],int bufsize){ char *dir; if(state!=GET0) return 0; dir=getcwd(buffer,BUFSIZE); if(dir==0) pdie(""!fileGetCwd""!); return strlen(dir);} /* Time */ #define putInt(x) {\ if(x<0) die(""!putInt(): Negative integer""!);\ for(;x>=128;x/=128){\ buffer[bufpnt++]=x%128+128;\ if(bufpnt>=bufsize) die(""!Buffer overflow""!);}\ buffer[bufpnt++]=x;} int unixTime(int state,char buffer[],int bufsize){ struct timeval tv; int exponent=6; int bufpnt=0; if(state!=GET0) return 0; if(gettimeofday(&tv,NULL)) pdie(""!time()/gettimeofday()""!); putInt(tv.tv_usec); putInt(tv.tv_sec); putInt(exponent); return bufpnt;} /* Demonize */ void demon_dief(FILE* file,char* msg){ fprintf(file,""!demonize()/%s: %s\n""!,msg,strerror(errno)); exit(0);} void demon_die(char* msg){ demon_dief(stderr,msg);} void open_log_file(int fd0,char* path,int flags){ int fd1; FILE* file=(fd0==2)?stdout:stderr; if(close(fd0)==-1) demon_dief(file,""!close()""!); fd1=open(path,flags,S_rw_r_r); if(fd1<0) demon_dief(file,""!open()""!); if(fd1==fd0) return; fprintf(file, ""!Opened fd=%d, should have opened fd=%d\n""!,fd1,fd0); exit(0);} void demonize1(char* log_file,char* pid_file,char* usr_name){ pid_t pid; FILE *pid_stream; struct passwd *user; int fd; pid=fork(); if(pid==-1) demon_die(""!first fork()""!); if(pid) exit(0); if(setsid()==-1) demon_die(""!setsid()""!); pid=fork(); if(pid==-1) demon_die(""!second fork()""!); if(pid) exit(0); if(pid_file[0]){ fd=open(pid_file,O_WRONLY|O_CREAT|O_EXCL,S_rw_r_r); if(fd<0) demon_die(""!open(pid_file)""!); if(!(pid_stream=fdopen(fd,""!w""!))) demon_die(""!fdopen()""!); if(fprintf(pid_stream,""!%d\n""!,getpid())<0) demon_die(""!fprintf(pid_stream)""!); if(fclose(pid_stream)) demon_die(""!fclose(pid_stream)""!);} if(usr_name[0]){ user=getpwnam(usr_name); if(!user) demon_die(""!getpwnam()""!); if(setgid(user->pw_uid)) demon_die(""!setgid()""!); if(setuid(user->pw_uid)) demon_die(""!setuid()""!);} if(chdir(""!/""!)==-1) demon_die(""!chdir()""!); umask(022); if(close(0)==-1) demon_die(""!close(0)""!); if(open(""!/dev/null""!,O_RDONLY)!=0) demon_die(""!open(0)""!); open_log_file(1,log_file,O_WRONLY|O_CREAT|O_TRUNC); open_log_file(2,log_file,O_WRONLY|O_CREAT|O_TRUNC);} int demonize(int state,char buffer[],int bufsize){ int arg1,arg2,arg3; switch(state){ case PUT0: arg1=1; arg2=skipString(buffer,bufsize,arg1, ""!demonize(): invalid arguments""!); arg3=skipString(buffer,bufsize,arg2, ""!demonize(): invalid arguments""!); skipString(buffer,bufsize,arg3, ""!demonize(): invalid arguments""!); demonize1(buffer+arg1,buffer+arg2,buffer+arg3); case PUT1: case GET0: case GET1: return 0;}} /* execlp1 */ int execlp1(int state,char buffer[],int bufsize){ int arg1,arg2,arg3; int fd,fd0,fd1,fd2; pid_t pid; static int status; switch(state){ case PUT0: arg1=1; arg2=skipString(buffer,bufsize,arg1, ""!execlp1(): invalid argument 1""!); arg3=skipString(buffer,bufsize,arg2, ""!execlp1(): invalid argument 2""!); skipString(buffer,bufsize,arg3, ""!execlp1(): invalid argument 3""!); PDIE4(buffer+arg1,buffer+arg2,buffer+arg3); #ifndef __CYGWIN__ pid=fork(); if(pid<0) pdie(""!fork()""!); if(pid==0){ if(chdir(buffer+arg1)) pdie2(""!execlp1()/chdir()""!,""!path""!); fd=open(""!/dev/null""!,O_RDWR); if(fd<0) Pdie(""!execlp1()/open(): Cannot open /dev/null""!); if(close(STDIN_FILENO)<0) Pdie(""!execlp1()/close() failed for stdin""!); if(dup2(fd,STDIN_FILENO)<0) Pdie(""!execlp1()/dup2() failed for stdin""!); if(close(STDOUT_FILENO)<0) Pdie(""!execlp1()/close() failed for stdout""!); if(dup2(fd,STDOUT_FILENO)<0) Pdie(""!execlp1()/dup2() failed for stdout""!); if(close(STDERR_FILENO)<0) Pdie(""!execlp1()/close() failed for stderr""!); if(dup2(fd,STDERR_FILENO)<0) exit(-1); execlp(buffer+arg2,buffer+arg2,buffer+arg3,(char *)NULL); exit(-1);} if(wait(&status)<0) pdie4(""!execlp1()/wait()""!,""!path""!,""!prog""!,""!arg""!); #else if(chdir(buffer+arg1)) pdie2(""!execlp1()/chdir()""!,""!path""!); fd=open(""!/dev/null""!,O_RDWR); if(fd<0) Pdie(""!execlp1()/open(): Cannot open /dev/null""!); fd0=dup(STDOUT_FILENO); if(fd0<0) Pdie(""!execlp1()/dup(): Cannot duplicate stdin""!); fd1=dup(STDOUT_FILENO); if(fd1<0) Pdie(""!execlp1()/dup(): Cannot duplicate stdout""!); fd2=dup(STDOUT_FILENO); if(fd2<0) Pdie(""!execlp1()/dup(): Cannot duplicate stderr""!); if(dup2(fd,STDIN_FILENO)<0) Pdie(""!execlp1()/dup2() failed for stdin""!); if(dup2(fd,STDOUT_FILENO)<0) Pdie(""!execlp1()/dup2() failed for stdout""!); if(dup2(fd,STDERR_FILENO)<0) Pdie(""!execlp1()/dup2() failed for stderr""!); status=spawnlp(_P_WAIT,buffer+arg2,buffer+arg2,buffer+arg3,(char *)NULL); if(dup2(fd2,STDERR_FILENO)<0) Pdie(""!execlp1()/dup2() failed for fd2""!); if(dup2(fd1,STDOUT_FILENO)<0) Pdie(""!execlp1()/dup2() failed for fd1""!); if(dup2(fd0,STDIN_FILENO)<0) Pdie(""!execlp1()/dup2() failed for fd0""!); if(close(fd)) Pdie(""!execlp1()/close() failed for fd""!); if(close(fd0)) Pdie(""!execlp1()/close() failed for fd1""!); if(close(fd1)) Pdie(""!execlp1()/close() failed for fd1""!); if(close(fd2)) Pdie(""!execlp1()/close() failed for fd1""!); #endif /* __CYGWIN__ */ case PUT1: case GET1: return 0; case GET0: buffer[0]=(char)(-1); if(WIFEXITED(status)) buffer[0]=(char)(WEXITSTATUS(status)); return 1;}} /* tcpQuery */ void print_herror(void){ switch(h_errno){ case HOST_NOT_FOUND: fprintf(stderr,""!The specified host is unknown.\n""!); break; case NO_ADDRESS: fprintf(stderr, ""!The requested name is valid but does not have\n""!); fprintf(stderr,""!an IP address.\n""!); break; case NO_RECOVERY: fprintf(stderr, ""!A non-recoverable name server error occurred.\n""!); break; case TRY_AGAIN: fprintf(stderr, ""!A temporary error occurred on an authoritative\n""!); fprintf(stderr,""!name server. Try again later.\n""!); break; default: fprintf(stderr,""!Unknown error.\n""!);}} int set_addr(struct sockaddr_in *addr,char* domain,int port){ struct hostent *host=gethostbyname(domain); if(!host){ fprintf(stderr,""!Unix call: gethostbyname(%s)\n""!,domain); print_herror(); return -1;} addr->sin_family=AF_INET; addr->sin_port=htons(port); memcpy(&(addr->sin_addr),host->h_addr_list[0],host->h_length); return 0;} #define GIVE_UP(x) {close(fd);fd=-1;return 0;} int tcpQuery(int state,char* buffer,int bufsize){ int arg1,arg2,arg3,arg4,arg5,arg6; char *domain; int port,secs,frac,expo; struct timeval tv; static int fd=-1; fd_set set; static long secs0,frac0; struct sockaddr_in to; ssize_t length1; int result; int flags; switch(state){ case PUT0: arg1=1; arg2=skipString(buffer,bufsize,arg1, ""!tcpQuery(): invalid argument 1""!); arg3=skipInt(buffer,bufsize,arg2, ""!tcpQuery(): invalid argument 2""!); arg4=skipInt(buffer,bufsize,arg3, ""!tcpQuery(): invalid argument 3""!); arg5=skipInt(buffer,bufsize,arg4, ""!tcpQuery(): invalid argument 4""!); arg6=skipInt(buffer,bufsize,arg5, ""!tcpQuery(): invalid argument 5""!); domain=buffer+arg1; port=getInt(buffer+arg2); secs=getInt(buffer+arg3); frac=getInt(buffer+arg4); expo=getInt(buffer+arg5); PDIE3(buffer+arg1,buffer+arg3); for(;expo>6;expo--) frac/=10; for(;expo<6;expo++) frac*=10; if(gettimeofday(&tv, NULL)) pdie3(""!tcpQuery()/gettimeofday()""!,""!domain""!,""!seconds""!); secs0=secs+tv.tv_sec-1; frac0=frac+tv.tv_usec+1000000; if(fd>=0) close(fd); fd=socket(AF_INET,SOCK_STREAM,0); if(fd<0) pdie3(""!tcpQuery()/socket()""!,""!domain""!,""!seconds""!); if(set_addr(&to,domain,port)) GIVE_UP(1) flags=fcntl(fd,F_GETFL,0); fcntl(fd,F_SETFL,flags|O_NONBLOCK); if(connect(fd,(void *)&to,sizeof(to))){ if(errno!=EINPROGRESS) GIVE_UP(2); FD_ZERO(&set); FD_SET(fd,&set); if(gettimeofday(&tv,NULL)) pdie3(""!tcpQuery()/gettimeofday()""!,""!domain""!,""!seconds""!); secs=secs0-tv.tv_sec; frac=frac0-tv.tv_usec; secs=secs+frac/1000000; frac=frac%1000000; if(secs<0) GIVE_UP(3) tv.tv_sec=secs; tv.tv_usec=frac; result=select(fd+1,0,&set,0,&tv); if(result<0) pdie3(""!tcpQuery()/select()""!,""!domain""!,""!seconds""!); if(result==0) GIVE_UP(4) result=select(fd+1,0,&set,0,&tv); if(result<0) pdie3(""!tcpQuery()/select()""!,""!domain""!,""!seconds""!); if(result==0) GIVE_UP(5)} bufsize=bufsize-arg6; buffer=buffer+arg6; case PUT1: do{ FD_ZERO(&set); FD_SET(fd,&set); if(gettimeofday(&tv,NULL)) pdie3(""!tcpQuery()/gettimeofday()""!,""!domain""!,""!seconds""!); secs=secs0-tv.tv_sec; frac=frac0-tv.tv_usec; secs=secs+frac/1000000; frac=frac%1000000; if(secs<0) GIVE_UP(6) tv.tv_sec=secs; tv.tv_usec=frac; result=select(fd+1,0,&set,0,&tv); if(result<0) pdie3(""!tcpQuery()/select()""!,""!domain""!,""!seconds""!); if(result==0) GIVE_UP(7) length1=send(fd,buffer,bufsize,0); if(length1<0) GIVE_UP(8) buffer+=length1; bufsize-=length1;} while(bufsize>0); return 0; case GET0: case GET1: if(fd<0) return 0; FD_ZERO(&set); FD_SET(fd,&set); if(gettimeofday(&tv,NULL)) pdie3(""!tcpQuery()/gettimeofday()""!,""!domain""!,""!seconds""!); secs=secs0-tv.tv_sec; frac=frac0-tv.tv_usec; secs=secs+frac/1000000; frac=frac%1000000; if(secs<0) GIVE_UP(9) tv.tv_sec=secs; tv.tv_usec=frac; result=select(fd+1,&set,0,&set,&tv); if(result<0) pdie3(""!tcpQuery()/select()""!,""!domain""!,""!seconds""!); if(result==0) GIVE_UP(10) length1=recv(fd,buffer,bufsize,0); if(length1<=0) GIVE_UP(11) return length1;}} /* Dispatch on command */ #define CASE(x,y) case x:return y(state,buffer,bufsize) int trigger2(int state,char command,char buffer[],int bufsize){ switch(command){ CASE(FileWrite ,fileWrite); CASE(FileWriteExec,fileWriteExec); CASE(FileRead ,fileRead); CASE(FileRm ,fileRm); CASE(FileSymlink ,fileSymlink); CASE(FileReadLink ,fileReadLink); CASE(FileMkdir ,fileMkdir); CASE(FileRmdir ,fileRmdir); CASE(FileDir ,fileDir); CASE(FileType ,fileType); CASE(FileTypeRead ,fileTypeRead); CASE(TextWrite ,textWrite); CASE(TextWriteExec,textWriteExec); CASE(FileGetCwd ,fileGetCwd); CASE(UnixTime ,unixTime); CASE(Demonize ,demonize); CASE(Execlp1 ,execlp1); CASE(TcpQuery ,tcpQuery); default: return 0;}} /* Transfer one buffer */ int trigger1(int push1,char buffer[],int bufsize){ static int push0=FALSE; static char command; if(push1){ if(push0) return trigger2(PUT1,command,buffer,bufsize); push0=TRUE; command=buffer[0]; return trigger2(PUT0,command,buffer,bufsize);} if(!push0) return trigger2(GET1,command,buffer,bufsize); push0=FALSE; return trigger2(GET0,command,buffer,bufsize);} /* Transfer one byte */ int trigger(int c){ static int push0=FALSE; static char buffer[BUFSIZE+1]; static int bufpnt=0; static int bufsize; int push1=(c>=0); if(push1){ if(!push0){push0=TRUE;bufpnt=0;} if(bufpnt>=BUFSIZE){trigger1(TRUE,buffer,bufpnt);bufpnt=0;} buffer[bufpnt++]=c; return -1;} if(push0){push0=FALSE;trigger1(TRUE,buffer,bufpnt);bufsize=0;} if(bufpnt>=bufsize){ bufsize=trigger1(FALSE,buffer,BUFSIZE); bufpnt=0;} if(bufpnt>=bufsize) return -1; return (unsigned char)buffer[bufpnt++];} " end show end define

lgcdef lgccharge of lgcio-interface as "0" enddef

lgcio1

Index 453 of page base

lgcdef lgcname of lgcio1 as "lgcio1" enddef

define value of lgcio1 as norm map ( \ x . lgcio2 ( x ) ) end define

lgcdef lgccharge of lgcio1 as "0" enddef

lgcio2 ( " )

Index 454 of page base

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

define value of lgcio2 ( x ) as norm [x is val : [extend request ( lgcio ( true ) , lgcio-interface ) :: [fileMkdir ( "testdir/" ) :: [fileWrite ( "testdir/testfile1" , "abc " ) :: [fileWriteExec ( "testdir/testfile2" , "def " ) :: [fileRead ( "testdir/testfile1" ) :: [fileRead ( "testdir/testfile2" ) :: [fileSymlink ( "testfile2" , "testdir/testfile3" ) :: [fileSymlink ( "testfile3" , "testdir/testfile4" ) :: [fileRead ( "testdir/testfile4" ) :: [fileReadLink ( "testdir/testfile4" ) :: [fileType ( "testdir/testfile0" ) :: [fileType ( "/dev/tty" ) :: [fileType ( "testdir/testfile1" ) :: [fileType ( "testdir" ) :: [fileType ( "testdir/testfile3" ) :: [fileTypeRead ( "testdir/testfile0" ) :: [fileTypeRead ( "testdir/testfile1" ) :: [fileTypeRead ( "testdir" ) :: [fileTypeRead ( "testdir/testfile3" ) :: [fileDir ( "testdir" ) :: [textWrite ( "testdir/testtext1" , "12" , "a b c " ) :: [textWriteExec ( "testdir/testtext2" , "12" , "d e f " ) :: [fileRead ( "testdir/testtext1" ) :: [fileRead ( "testdir/testtext2" ) :: [unixTime :: [write request ( "tcpQuery " ) :: [tcpQuery ( "logiweb.eu" , %% %8 %0 , %% %2 %1 , 1 , "GET /test.html" :: CRLF ) :: [unixTime :: [fileGetCwd :: [fileRm ( "testdir/testfile1" ) :: [fileRm ( "testdir/testfile2" ) :: [fileRm ( "testdir/testfile3" ) :: [fileRm ( "testdir/testfile4" ) :: [fileRm ( "testdir/testfile5" ) :: [fileRm ( "testdir/testtext1" ) :: [fileRm ( "testdir/testtext2" ) :: [fileRmdir ( "testdir" ) :: [fileRmdir ( "testdir2" ) :: [exec request ( true , lgcio3 ) :: true]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] end define

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

lgcio3

Index 455 of page base

lgcdef lgcname of lgcio3 as "lgcio3" enddef

define value of lgcio3 as norm map ( \ x . lgcio4 ( x ) ) end define

lgcdef lgccharge of lgcio3 as "0" enddef

lgcio4 ( " )

Index 456 of page base

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

define value of lgcio4 ( x ) as norm [x is val : if println ( !"exec reply" ) .then. 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 [e IN LET asterisk prime head BE [asterisk IN LET asterisk prime tail BE [asterisk prime IN LET asterisk BE [x IN [[e r= exec reply ( true , true )] .and. LET reverse ( x ) BE [asterisk IN LET asterisk BE [x IN [println ( !"extend reply lgcio-interface" ) .then. 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 [e IN LET asterisk prime head BE [asterisk IN LET asterisk prime tail BE [asterisk prime IN LET asterisk BE [x IN [[e r= extend reply ( true )] .and. [println ( !"fileMkdir testdir/" ) .then. 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 [e IN LET asterisk prime head BE [asterisk IN LET asterisk prime tail BE [asterisk prime IN LET asterisk BE [x IN [[e = lgcio ( true )] .and. [println ( !"fileWrite testdir/testfile1" ) .then. 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 [e IN LET asterisk prime head BE [asterisk IN LET asterisk prime tail BE [asterisk prime IN LET asterisk BE [x IN [[e = lgcio ( true )] .and. [println ( !"fileWriteExec testdir/testfile2" ) .then. 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 [e IN LET asterisk prime head BE [asterisk IN LET asterisk prime tail BE [asterisk prime IN LET asterisk BE [x IN [[e = lgcio ( true )] .and. [println ( !"fileRead testdir/testfile1" ) .then. 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 [e IN LET asterisk prime head BE [asterisk IN LET asterisk prime tail BE [asterisk prime IN LET asterisk BE [x IN [[vt2vector ( e first ) = !"abc "] .and. [println ( !"fileRead testdir/testfile2" ) .then. 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 [e IN LET asterisk prime head BE [asterisk IN LET asterisk prime tail BE [asterisk prime IN LET asterisk BE [x IN [[vt2vector ( e first ) = !"def "] .and. [println ( !"fileSymlink testfile2 testdir/testfile3" ) .then. 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 [e IN LET asterisk prime head BE [asterisk IN LET asterisk prime tail BE [asterisk prime IN LET asterisk BE [x IN [[e = lgcio ( true )] .and. [println ( !"fileSymlink testfile3 testdir/testfile4" ) .then. 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 [e IN LET asterisk prime head BE [asterisk IN LET asterisk prime tail BE [asterisk prime IN LET asterisk BE [x IN [[e = lgcio ( true )] .and. [println ( !"fileRead testdir/testfile4" ) .then. 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 [e IN LET asterisk prime head BE [asterisk IN LET asterisk prime tail BE [asterisk prime IN LET asterisk BE [x IN [[vt2vector ( e first ) = !"def "] .and. [println ( !"fileReadLink testdir/testfile4" ) .then. 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 [e IN LET asterisk prime head BE [asterisk IN LET asterisk prime tail BE [asterisk prime IN LET asterisk BE [x IN [[vt2vector ( e first ) = "testfile3"] .and. [println ( !"fileType testdir/testfile0" ) .then. 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 [e IN LET asterisk prime head BE [asterisk IN LET asterisk prime tail BE [asterisk prime IN LET asterisk BE [x IN [[e first = [FileTypeNonexistent :: true]] .and. [println ( !"fileType /dev/tty" ) .then. 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 [e IN LET asterisk prime head BE [asterisk IN LET asterisk prime tail BE [asterisk prime IN LET asterisk BE [x IN [[e first = [FileTypeOther :: true]] .and. [println ( !"fileType testdir/testfile1" ) .then. 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 [e IN LET asterisk prime head BE [asterisk IN LET asterisk prime tail BE [asterisk prime IN LET asterisk BE [x IN [[e first = [FileTypeRegular :: true]] .and. [println ( !"fileType testdir" ) .then. 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 [e IN LET asterisk prime head BE [asterisk IN LET asterisk prime tail BE [asterisk prime IN LET asterisk BE [x IN [[e first = [FileTypeDirectory :: true]] .and. [println ( !"fileType testdir/testfile3" ) .then. 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 [e IN LET asterisk prime head BE [asterisk IN LET asterisk prime tail BE [asterisk prime IN LET asterisk BE [x IN [[e first = [FileTypeLink :: true]] .and. [println ( !"fileTypeRead testdir/testfile0" ) .then. 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 [e IN LET asterisk prime head BE [asterisk IN LET asterisk prime tail BE [asterisk prime IN LET asterisk BE [x IN [[e first = [FileTypeNonexistent :: true]] .and. [println ( !"fileTypeRead testdir/testfile1" ) .then. 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 [e IN LET asterisk prime head BE [asterisk IN LET asterisk prime tail BE [asterisk prime IN LET asterisk BE [x IN [[e first = [FileTypeRegular :: ["a" :: ["b" :: ["c" :: [LF :: true]]]]]] .and. [println ( !"fileTypeRead testdir" ) .then. 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 [e IN LET asterisk prime head BE [asterisk IN LET asterisk prime tail BE [asterisk prime IN LET asterisk BE [x IN [[e first = [FileTypeNonexistent :: true]] .and. [println ( !"fileTypeRead testdir/testfile3" ) .then. 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 [e IN LET asterisk prime head BE [asterisk IN LET asterisk prime tail BE [asterisk prime IN LET asterisk BE [x IN [[e first = [FileTypeRegular :: ["d" :: ["e" :: ["f" :: [LF :: true]]]]]] .and. [println ( !"fileDir testdir" ) .then. 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 [e IN LET asterisk prime head BE [asterisk IN LET asterisk prime tail BE [asterisk prime IN LET asterisk BE [x IN [[e r= lgcio ( true )] .and. [println ( !"textWrite testdir/testtext1" ) .then. 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 [e IN LET asterisk prime head BE [asterisk IN LET asterisk prime tail BE [asterisk prime IN LET asterisk BE [x IN [[e = lgcio ( true )] .and. [println ( !"textWriteExec testdir/testtext2" ) .then. 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 [e IN LET asterisk prime head BE [asterisk IN LET asterisk prime tail BE [asterisk prime IN LET asterisk BE [x IN [[e = lgcio ( true )] .and. [println ( !"fileRead testdir/testtext1" ) .then. 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 [e IN LET asterisk prime head BE [asterisk IN LET asterisk prime tail BE [asterisk prime IN LET asterisk BE [x IN [[vt2vector ( e first ) = !"a12b12c12"] .and. [println ( !"fileRead testdir/testtext2" ) .then. 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 [e IN LET asterisk prime head BE [asterisk IN LET asterisk prime tail BE [asterisk prime IN LET asterisk BE [x IN [[vt2vector ( e first ) = !"d12e12f12"] .and. [println ( !"unixTime" ) .then. 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 [e IN LET asterisk prime head BE [asterisk IN LET asterisk prime tail BE [asterisk prime IN LET asterisk BE [x IN [[[e r= lgcio ( true )] .and. trace ( parse-unixTime ( e ) )] .then. [println ( !"tcpQuery logiweb.eu 80 GET /test.html" ) .then. 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 [e IN LET asterisk prime head BE [asterisk IN LET asterisk prime tail BE [asterisk prime IN LET asterisk BE [x IN [[[e r= lgcio ( true )] .and. trace ( vt2vector ( e first ) )] .then. [println ( !"unixTime" ) .then. 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 [e IN LET asterisk prime head BE [asterisk IN LET asterisk prime tail BE [asterisk prime IN LET asterisk BE [x IN [[[e r= lgcio ( true )] .and. trace ( parse-unixTime ( e ) )] .then. [println ( !"fileGetCwd" ) .then. 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 [e IN LET asterisk prime head BE [asterisk IN LET asterisk prime tail BE [asterisk prime IN LET asterisk BE [x IN [[[e r= lgcio ( true )] .and. println ( e first )] .then. [println ( !"fileRm testdir/testfile1" ) .then. 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 [e IN LET asterisk prime head BE [asterisk IN LET asterisk prime tail BE [asterisk prime IN LET asterisk BE [x IN [[e = lgcio ( true )] .and. [println ( !"fileRm testdir/testfile2" ) .then. 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 [e IN LET asterisk prime head BE [asterisk IN LET asterisk prime tail BE [asterisk prime IN LET asterisk BE [x IN [[e = lgcio ( true )] .and. [println ( !"fileRm testdir/testfile3" ) .then. 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 [e IN LET asterisk prime head BE [asterisk IN LET asterisk prime tail BE [asterisk prime IN LET asterisk BE [x IN [[e = lgcio ( true )] .and. [println ( !"fileRm testdir/testfile4" ) .then. 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 [e IN LET asterisk prime head BE [asterisk IN LET asterisk prime tail BE [asterisk prime IN LET asterisk BE [x IN [[e = lgcio ( true )] .and. [println ( !"fileRm testdir/testfile5" ) .then. 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 [e IN LET asterisk prime head BE [asterisk IN LET asterisk prime tail BE [asterisk prime IN LET asterisk BE [x IN [[e = lgcio ( true )] .and. [println ( !"fileRm testdir/testtext1" ) .then. 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 [e IN LET asterisk prime head BE [asterisk IN LET asterisk prime tail BE [asterisk prime IN LET asterisk BE [x IN [[e = lgcio ( true )] .and. [println ( !"fileRm testdir/testtext2" ) .then. 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 [e IN LET asterisk prime head BE [asterisk IN LET asterisk prime tail BE [asterisk prime IN LET asterisk BE [x IN [[e = lgcio ( true )] .and. [println ( !"fileRmdir testdir" ) .then. 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 [e IN LET asterisk prime head BE [asterisk IN LET asterisk prime tail BE [asterisk prime IN LET asterisk BE [x IN [[e = lgcio ( true )] .and. [println ( !"fileRmdir testdir2" ) .then. 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 [e IN LET asterisk prime head BE [asterisk IN LET asterisk prime tail BE [asterisk prime IN LET asterisk BE [x IN [[e = lgcio ( true )] .and. [x = true]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] then write request ( "Test succeeded. " ) :: <<>> else [write request ( "Test failed. " ) :: [quit request ( 1 ) :: <<>>]]] end define

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

default ( " , " )

Index 457 of page base

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

define value of default ( x , y ) as norm [x is val : [y is val : if y then x else y]] end define

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

repeat ( " , " )

Index 458 of page base

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

define value of repeat ( n , x ) as norm [n is val : [x is val : if n <= 0 then true else [x :: repeat ( n - 1 , x )]]] end define

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

lgc-string2mixed ( " )

Index 459 of page base

lgcdef lgcname of lgc-string2mixed ( lgcvar ) as "lgc-string2mixed ( ""! )" enddef

define value of lgc-string2mixed ( a ) as norm [a is val : lgc-string2mixed1 ( vt2vector* ( a ) )] end define

lgcdef lgccharge of lgc-string2mixed ( lgcvar ) as "0" enddef

lgc-string2mixed1 ( " )

Index 460 of page base

lgcdef lgcname of lgc-string2mixed1 ( lgcvar ) as "lgc-string2mixed1 ( ""! )" enddef

define value of lgc-string2mixed1 ( a ) as norm [a is val : if a 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 [c IN LET asterisk prime head BE [asterisk IN LET asterisk prime tail BE [asterisk prime IN LET asterisk BE [a IN LET floor ( c - NULL , %% %1 %6 ) 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 [m IN LET asterisk prime head BE [asterisk IN LET asterisk prime tail BE [asterisk prime IN LET asterisk BE [n IN [lgc-hexdigit ( m ) :: [lgc-hexdigit ( n ) :: lgc-string2mixed1 ( a )]]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of lgc-string2mixed1 ( lgcvar ) as "0" enddef

lgc-hexdigit ( " )

Index 461 of page base

lgcdef lgcname of lgc-hexdigit ( lgcvar ) as "lgc-hexdigit ( ""! )" enddef

define value of lgc-hexdigit ( m ) as norm [m is val : if m <= 9 then m + !"0" else [[m + !"A"] - Base]] end define

lgcdef lgccharge of lgc-hexdigit ( lgcvar ) as "0" enddef

rack2sl ( " )

Index 462 of page base

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

optimized define value of rack2sl ( R ) as norm [R is val : if R then bt2vector* ( 3 ) else LET rack2sl1 ( R , true [[ 0 -> 3 ]] ) BE [asterisk IN LET asterisk BE [s IN vt2vector* ( s [[ 2 ]] :: make-card ( s [[ 0 ]] ) )]]] end define

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

rack2sl1 ( " , " )

Index 463 of page base

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

define value of rack2sl1 ( R , s ) as norm [R is val : [s is val : if R then s [[ 1 -> 1 ]] else if R intp then rack2sl-card ( R , s ) else if R pairp then rack2sl-pair ( R , s ) else exception]] end define

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

rack2sl-card ( " , " )

Index 464 of page base

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

define value of rack2sl-card ( R , s ) as norm [R is val : [s is val : if R < 0 then exception else LET s [[ 3 ]] [[ R ]] BE [asterisk IN LET asterisk BE [i IN if .not. i then s [[ 1 -> i ]] else LET s [[ 0 ]] BE [asterisk IN LET asterisk BE [n IN LET s [[ 0 -> n + 1 ]] BE [asterisk IN LET asterisk BE [s IN LET s [[ 1 -> n ]] BE [asterisk IN LET asterisk BE [s IN LET s [[ 3 :: [R :: <<>>] => n ]] BE [asterisk IN LET asterisk BE [s IN LET floor ( integer-length ( R ) , 8 ) 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 [d IN LET asterisk prime head BE [asterisk IN LET asterisk prime tail BE [asterisk prime IN LET asterisk BE [q IN LET s [[ 2 ]] BE [asterisk IN LET asterisk BE [r IN if q != 1 then s [[ 2 -> r :: [make-card ( 0 ) :: make-card ( R )] ]] else [s [[ 2 -> r :: [make-card ( 2 ) :: [make-card ( d ) :: vector ( R )]] ]]]]]]]]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of rack2sl-card ( lgcvar , lgcvar ) as "0" enddef

rack2sl-pair ( " , " )

Index 465 of page base

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

define value of rack2sl-pair ( R , s ) as norm [R is val : [s is val : LET rack2sl1 ( R head , s ) BE [asterisk IN LET asterisk BE [s IN LET s [[ 1 ]] BE [asterisk IN LET asterisk BE [i IN LET rack2sl1 ( R tail , s ) BE [asterisk IN LET asterisk BE [s IN LET s [[ 1 ]] BE [asterisk IN LET asterisk BE [j IN LET s [[ 4 ]] [[ i ]] [[ j ]] BE [asterisk IN LET asterisk BE [k IN if .not. k then s [[ 1 -> k ]] else LET s [[ 0 ]] BE [asterisk IN LET asterisk BE [n IN LET s [[ 0 -> n + 1 ]] BE [asterisk IN LET asterisk BE [s IN LET s [[ 1 -> n ]] BE [asterisk IN LET asterisk BE [s IN LET s [[ 4 :: [i :: [j :: <<>>]] => n ]] BE [asterisk IN LET asterisk BE [s IN LET s [[ 2 ]] BE [asterisk IN LET asterisk BE [r IN [s [[ 2 -> r :: [make-card ( i ) :: make-card ( j )] ]]]]]]]]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of rack2sl-pair ( lgcvar , lgcvar ) as "0" enddef

sl2rack ( " )

Index 466 of page base

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

optimized define value of sl2rack ( r ) as norm [r is val : sl2rack1 ( r , 3 , true )] end define

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

sl2rack1 ( " , " , " )

Index 467 of page base

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

define value of sl2rack1 ( r , n , s ) as norm [r is val : [n is val : [s is val : LET parse-card ( 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 BE [c IN LET asterisk prime head BE [asterisk IN LET asterisk prime tail BE [asterisk prime IN LET asterisk BE [r IN if c = n then s [[ n - 1 ]] else LET parse-card ( 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 BE [C IN LET asterisk prime head BE [asterisk IN LET asterisk prime tail BE [asterisk prime IN LET asterisk BE [r IN if c = 0 then sl2rack1 ( r , n + 1 , s [[ n -> C ]] ) else if c = 2 then sl2rack-vector ( C , r , n , s , true ) else sl2rack1 ( r , n + 1 , s [[ n -> s [[ c ]] :: [s [[ C ]]] ]] )]]]]]]]]]]]]]]]]]]] end define

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

sl2rack-vector ( " , " , " , " , " )

Index 468 of page base

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

define value of sl2rack-vector ( C , r , n , s , v ) as norm [C is val : [r is val : [n is val : [s is val : [v is val : if C = 0 then sl2rack1 ( r , n + 1 , s [[ n -> vt2vector ( v ) ]] ) 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 BE [b IN LET asterisk prime head BE [asterisk IN LET asterisk prime tail BE [asterisk prime IN LET asterisk BE [r IN if [b < NULL] .or. [b > V255] then exception else sl2rack-vector ( C - 1 , r , n , s , v :: b )]]]]]]]]]]]]] end define

lgcdef lgccharge of sl2rack-vector ( lgcvar , lgcvar , lgcvar , lgcvar , lgcvar ) as "0" enddef

lgr-rack-clean ( " )

Index 469 of page base

lgcdef lgcname of lgr-rack-clean ( lgcvar ) as "lgr-rack-clean ( ""! )" enddef

define value of lgr-rack-clean ( R ) as norm [R is val : LET R [[ !"code" -> true ]] BE [asterisk IN LET asterisk BE [R IN LET R [[ !"cluster" -> true ]] BE [asterisk IN LET asterisk BE [R IN LET R [[ !"diagnose" ]] untag BE [asterisk IN LET asterisk BE [d IN [R [[ !"diagnose" -> d ]]]]]]]]]] end define

lgcdef lgccharge of lgr-rack-clean ( lgcvar ) as "0" enddef

lgr-cache-restore ( " )

Index 470 of page base

lgcdef lgcname of lgr-cache-restore ( lgcvar ) as "lgr-cache-restore ( ""! )" enddef

define value of lgr-cache-restore ( c ) as norm [c is val : LET c [[ 0 ]] BE [asterisk IN LET asterisk BE [r IN LET c [[ r ]] [[ !"diagnose" ]] maptag BE [asterisk IN LET asterisk BE [d IN LET compile ( c ) BE [asterisk IN LET asterisk BE [c IN [c [[ r :: [[!"diagnose"] :: <<>>] => d ]]]]]]]]]] end define

lgcdef lgccharge of lgr-cache-restore ( lgcvar ) as "0" enddef

lgr-cluster-closure ( " , " )

Index 471 of page base

lgcdef lgcname of lgr-cluster-closure ( lgcvar , lgcvar ) as "lgr-cluster-closure ( ""! , ""! )" enddef

define value of lgr-cluster-closure ( r , C ) as norm [r is val : [C is val : LET C [[ r ]] BE [asterisk IN LET asterisk BE [c IN LET c [[ r ]] [[ !"bibliography" ]] 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 [b IN LET lgr-cluster-closure1 ( b , C ) BE [asterisk IN LET asterisk BE [C prime IN LET c [[ r :: [[!"cluster"] :: <<>>] => C prime ]] BE [asterisk IN LET asterisk BE [c IN LET lgr-cluster-closure2 ( c , C prime ) BE [asterisk IN LET asterisk BE [c IN [C [[ r -> c ]]]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of lgr-cluster-closure ( lgcvar , lgcvar ) as "0" enddef

lgr-cluster-closure1 ( " , " )

Index 472 of page base

lgcdef lgcname of lgr-cluster-closure1 ( lgcvar , lgcvar ) as "lgr-cluster-closure1 ( ""! , ""! )" enddef

define value of lgr-cluster-closure1 ( b , C ) as norm [b is val : [C is val : if b atom then true else LET b 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 asterisk BE [b IN LET lgr-cluster-closure1 ( b , C ) BE [asterisk IN LET asterisk BE [C prime IN LET C prime [[ r -> C [[ r ]] ]] BE [asterisk IN LET asterisk BE [C prime IN lgr-array-add ( C prime , C [[ r ]] [[ r ]] [[ !"cluster" ]] )]]]]]]]]]]]]]] end define

lgcdef lgccharge of lgr-cluster-closure1 ( lgcvar , lgcvar ) as "0" enddef

lgr-array-add ( " , " )

Index 473 of page base

lgcdef lgcname of lgr-array-add ( lgcvar , lgcvar ) as "lgr-array-add ( ""! , ""! )" enddef

define value of lgr-array-add ( a , A ) as norm [a is val : [A is val : if A atom then a else if A head intp then a [[ A head -> A tail ]] else lgr-array-add ( lgr-array-add ( a , A head ) , A tail )]] end define

lgcdef lgccharge of lgr-array-add ( lgcvar , lgcvar ) as "0" enddef

lgr-cluster-closure2 ( " , " )

Index 474 of page base

lgcdef lgcname of lgr-cluster-closure2 ( lgcvar , lgcvar ) as "lgr-cluster-closure2 ( ""! , ""! )" enddef

define value of lgr-cluster-closure2 ( c , C ) as norm [c is val : [C is val : if C atom then c else LET C head BE [asterisk IN LET asterisk BE [r IN if r intp then c [[ r -> C [[ r ]] [[ r ]] ]] else lgr-cluster-closure2 ( lgr-cluster-closure2 ( c , C head ) , C tail )]]]] end define

lgcdef lgccharge of lgr-cluster-closure2 ( lgcvar , lgcvar ) as "0" enddef

ripemd-mask0

Index 475 of page base

lgcdef lgcname of ripemd-mask0 as "ripemd-mask0" enddef

define value of ripemd-mask0 as norm [ash ( 1 , %% %3 %2 ) - 1] end define

lgcdef lgccharge of ripemd-mask0 as "0" enddef

ripemd-mask1 ( " )

Index 476 of page base

lgcdef lgcname of ripemd-mask1 ( lgcvar ) as "ripemd-mask1 ( ""! )" enddef

define value of ripemd-mask1 ( x ) as norm [x is val : logand ( x , ripemd-mask0 )] end define

lgcdef lgccharge of ripemd-mask1 ( lgcvar ) as "0" enddef

ripemd-rol ( " , " )

Index 477 of page base

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

define value of ripemd-rol ( x , n ) as norm [x is val : [n is val : ripemd-mask1 ( logior ( ash ( x , n ) , ash ( x , n - [%% %3 %2] ) ) )]] end define

lgcdef lgccharge of ripemd-rol ( lgcvar , lgcvar ) as "0" enddef

ripemd-f ( " , " , " )

Index 478 of page base

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

define value of ripemd-f ( x , y , z ) as norm [x is val : [y is val : [z is val : logxor ( x , logxor ( y , z ) )]]] end define

lgcdef lgccharge of ripemd-f ( lgcvar , lgcvar , lgcvar ) as "0" enddef

ripemd-g ( " , " , " )

Index 479 of page base

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

define value of ripemd-g ( x , y , z ) as norm [x is val : [y is val : [z is val : logior ( logand ( x , y ) , logand ( lognot ( x ) , z ) )]]] end define

lgcdef lgccharge of ripemd-g ( lgcvar , lgcvar , lgcvar ) as "0" enddef

ripemd-h ( " , " , " )

Index 480 of page base

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

define value of ripemd-h ( x , y , z ) as norm [x is val : [y is val : [z is val : ripemd-mask1 ( logxor ( logior ( x , lognot ( y ) ) , z ) )]]] end define

lgcdef lgccharge of ripemd-h ( lgcvar , lgcvar , lgcvar ) as "0" enddef

ripemd-i ( " , " , " )

Index 481 of page base

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

define value of ripemd-i ( x , y , z ) as norm [x is val : [y is val : [z is val : logior ( logand ( x , z ) , logand ( y , lognot ( z ) ) )]]] end define

lgcdef lgccharge of ripemd-i ( lgcvar , lgcvar , lgcvar ) as "0" enddef

ripemd-j ( " , " , " )

Index 482 of page base

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

define value of ripemd-j ( x , y , z ) as norm [x is val : [y is val : [z is val : ripemd-mask1 ( logxor ( x , logior ( y , lognot ( z ) ) ) )]]] end define

lgcdef lgccharge of ripemd-j ( lgcvar , lgcvar , lgcvar ) as "0" enddef

ripemd-gg-const

Index 483 of page base

lgcdef lgcname of ripemd-gg-const as "ripemd-gg-const" enddef

define value of ripemd-gg-const as norm [%% %1 %5 %1 %8 %5 %0 %0 %2 %4 %9] end define

lgcdef lgccharge of ripemd-gg-const as "0" enddef

ripemd-hh-const

Index 484 of page base

lgcdef lgcname of ripemd-hh-const as "ripemd-hh-const" enddef

define value of ripemd-hh-const as norm [%% %1 %8 %5 %9 %7 %7 %5 %3 %9 %3] end define

lgcdef lgccharge of ripemd-hh-const as "0" enddef

ripemd-ii-const

Index 485 of page base

lgcdef lgcname of ripemd-ii-const as "ripemd-ii-const" enddef

define value of ripemd-ii-const as norm [%% %2 %4 %0 %0 %9 %5 %9 %7 %0 %8] end define

lgcdef lgccharge of ripemd-ii-const as "0" enddef

ripemd-jj-const

Index 486 of page base

lgcdef lgcname of ripemd-jj-const as "ripemd-jj-const" enddef

define value of ripemd-jj-const as norm [%% %2 %8 %4 %0 %8 %5 %3 %8 %3 %8] end define

lgcdef lgccharge of ripemd-jj-const as "0" enddef

ripemd-ggg-const

Index 487 of page base

lgcdef lgcname of ripemd-ggg-const as "ripemd-ggg-const" enddef

define value of ripemd-ggg-const as norm [%% %2 %0 %5 %3 %9 %9 %4 %2 %1 %7] end define

lgcdef lgccharge of ripemd-ggg-const as "0" enddef

ripemd-hhh-const

Index 488 of page base

lgcdef lgcname of ripemd-hhh-const as "ripemd-hhh-const" enddef

define value of ripemd-hhh-const as norm [%% %1 %8 %3 %6 %0 %7 %2 %6 %9 %1] end define

lgcdef lgccharge of ripemd-hhh-const as "0" enddef

ripemd-iii-const

Index 489 of page base

lgcdef lgcname of ripemd-iii-const as "ripemd-iii-const" enddef

define value of ripemd-iii-const as norm [%% %1 %5 %4 %8 %6 %0 %3 %6 %8 %4] end define

lgcdef lgccharge of ripemd-iii-const as "0" enddef

ripemd-jjj-const

Index 490 of page base

lgcdef lgcname of ripemd-jjj-const as "ripemd-jjj-const" enddef

define value of ripemd-jjj-const as norm [%% %1 %3 %5 %2 %8 %2 %9 %9 %2 %6] end define

lgcdef lgccharge of ripemd-jjj-const as "0" enddef

ripemd-init

Index 491 of page base

lgcdef lgcname of ripemd-init as "ripemd-init" enddef

define value of ripemd-init as norm [%% %1 %7 %3 %2 %5 %8 %4 %1 %9 %3 :: [%% %4 %0 %2 %3 %2 %3 %3 %4 %1 %7 :: [%% %2 %5 %6 %2 %3 %8 %3 %1 %0 %2 :: [%% %2 %7 %1 %7 %3 %3 %8 %7 %8 :: [%% %3 %2 %8 %5 %3 %7 %7 %5 %2 %0 :: <<>>]]]]] end define

lgcdef lgccharge of ripemd-init as "0" enddef

ripemd-compress ( " , " )

Index 492 of page base

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

define value of ripemd-compress ( Q , X ) as norm [Q is val : [X is val : LET Q 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 [a 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 [b 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 [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 [d 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 [e 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 Q 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 [A 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 [B 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 [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 [D 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 [E 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 ripemd-mask1 ( [a + ripemd-f ( b , c , d )] + [X [[ 0 ]]] ) BE [asterisk IN LET asterisk BE [a IN LET ripemd-mask1 ( ripemd-rol ( a , %% %1 %1 ) + e ) BE [asterisk IN LET asterisk BE [a IN LET ripemd-rol ( c , %% %1 %0 ) BE [asterisk IN LET asterisk BE [c IN LET ripemd-mask1 ( [e + ripemd-f ( a , b , c )] + [X [[ 1 ]]] ) BE [asterisk IN LET asterisk BE [e IN LET ripemd-mask1 ( ripemd-rol ( e , %% %1 %4 ) + d ) BE [asterisk IN LET asterisk BE [e IN LET ripemd-rol ( b , %% %1 %0 ) BE [asterisk IN LET asterisk BE [b IN LET ripemd-mask1 ( [d + ripemd-f ( e , a , b )] + [X [[ 2 ]]] ) BE [asterisk IN LET asterisk BE [d IN LET ripemd-mask1 ( ripemd-rol ( d , %% %1 %5 ) + c ) BE [asterisk IN LET asterisk BE [d IN LET ripemd-rol ( a , %% %1 %0 ) BE [asterisk IN LET asterisk BE [a IN LET ripemd-mask1 ( [c + ripemd-f ( d , e , a )] + [X [[ 3 ]]] ) BE [asterisk IN LET asterisk BE [c IN LET ripemd-mask1 ( ripemd-rol ( c , %% %1 %2 ) + b ) BE [asterisk IN LET asterisk BE [c IN LET ripemd-rol ( e , %% %1 %0 ) BE [asterisk IN LET asterisk BE [e IN LET ripemd-mask1 ( [b + ripemd-f ( c , d , e )] + [X [[ 4 ]]] ) BE [asterisk IN LET asterisk BE [b IN LET ripemd-mask1 ( ripemd-rol ( b , 5 ) + a ) BE [asterisk IN LET asterisk BE [b IN LET ripemd-rol ( d , %% %1 %0 ) BE [asterisk IN LET asterisk BE [d IN LET ripemd-mask1 ( [a + ripemd-f ( b , c , d )] + [X [[ 5 ]]] ) BE [asterisk IN LET asterisk BE [a IN LET ripemd-mask1 ( ripemd-rol ( a , 8 ) + e ) BE [asterisk IN LET asterisk BE [a IN LET ripemd-rol ( c , %% %1 %0 ) BE [asterisk IN LET asterisk BE [c IN LET ripemd-mask1 ( [e + ripemd-f ( a , b , c )] + [X [[ 6 ]]] ) BE [asterisk IN LET asterisk BE [e IN LET ripemd-mask1 ( ripemd-rol ( e , 7 ) + d ) BE [asterisk IN LET asterisk BE [e IN LET ripemd-rol ( b , %% %1 %0 ) BE [asterisk IN LET asterisk BE [b IN LET ripemd-mask1 ( [d + ripemd-f ( e , a , b )] + [X [[ 7 ]]] ) BE [asterisk IN LET asterisk BE [d IN LET ripemd-mask1 ( ripemd-rol ( d , 9 ) + c ) BE [asterisk IN LET asterisk BE [d IN LET ripemd-rol ( a , %% %1 %0 ) BE [asterisk IN LET asterisk BE [a IN LET ripemd-mask1 ( [c + ripemd-f ( d , e , a )] + [X [[ 8 ]]] ) BE [asterisk IN LET asterisk BE [c IN LET ripemd-mask1 ( ripemd-rol ( c , %% %1 %1 ) + b ) BE [asterisk IN LET asterisk BE [c IN LET ripemd-rol ( e , %% %1 %0 ) BE [asterisk IN LET asterisk BE [e IN LET ripemd-mask1 ( [b + ripemd-f ( c , d , e )] + [X [[ 9 ]]] ) BE [asterisk IN LET asterisk BE [b IN LET ripemd-mask1 ( ripemd-rol ( b , %% %1 %3 ) + a ) BE [asterisk IN LET asterisk BE [b IN LET ripemd-rol ( d , %% %1 %0 ) BE [asterisk IN LET asterisk BE [d IN LET ripemd-mask1 ( [a + ripemd-f ( b , c , d )] + [X [[ %% %1 %0 ]]] ) BE [asterisk IN LET asterisk BE [a IN LET ripemd-mask1 ( ripemd-rol ( a , %% %1 %4 ) + e ) BE [asterisk IN LET asterisk BE [a IN LET ripemd-rol ( c , %% %1 %0 ) BE [asterisk IN LET asterisk BE [c IN LET ripemd-mask1 ( [e + ripemd-f ( a , b , c )] + [X [[ %% %1 %1 ]]] ) BE [asterisk IN LET asterisk BE [e IN LET ripemd-mask1 ( ripemd-rol ( e , %% %1 %5 ) + d ) BE [asterisk IN LET asterisk BE [e IN LET ripemd-rol ( b , %% %1 %0 ) BE [asterisk IN LET asterisk BE [b IN LET ripemd-mask1 ( [d + ripemd-f ( e , a , b )] + [X [[ %% %1 %2 ]]] ) BE [asterisk IN LET asterisk BE [d IN LET ripemd-mask1 ( ripemd-rol ( d , 6 ) + c ) BE [asterisk IN LET asterisk BE [d IN LET ripemd-rol ( a , %% %1 %0 ) BE [asterisk IN LET asterisk BE [a IN LET ripemd-mask1 ( [c + ripemd-f ( d , e , a )] + [X [[ %% %1 %3 ]]] ) BE [asterisk IN LET asterisk BE [c IN LET ripemd-mask1 ( ripemd-rol ( c , 7 ) + b ) BE [asterisk IN LET asterisk BE [c IN LET ripemd-rol ( e , %% %1 %0 ) BE [asterisk IN LET asterisk BE [e IN LET ripemd-mask1 ( [b + ripemd-f ( c , d , e )] + [X [[ %% %1 %4 ]]] ) BE [asterisk IN LET asterisk BE [b IN LET ripemd-mask1 ( ripemd-rol ( b , 9 ) + a ) BE [asterisk IN LET asterisk BE [b IN LET ripemd-rol ( d , %% %1 %0 ) BE [asterisk IN LET asterisk BE [d IN LET ripemd-mask1 ( [a + ripemd-f ( b , c , d )] + [X [[ %% %1 %5 ]]] ) BE [asterisk IN LET asterisk BE [a IN LET ripemd-mask1 ( ripemd-rol ( a , 8 ) + e ) BE [asterisk IN LET asterisk BE [a IN LET ripemd-rol ( c , %% %1 %0 ) BE [asterisk IN LET asterisk BE [c IN LET ripemd-mask1 ( [[e + ripemd-g ( a , b , c )] + [X [[ 7 ]]]] + ripemd-gg-const ) BE [asterisk IN LET asterisk BE [e IN LET ripemd-mask1 ( ripemd-rol ( e , 7 ) + d ) BE [asterisk IN LET asterisk BE [e IN LET ripemd-rol ( b , %% %1 %0 ) BE [asterisk IN LET asterisk BE [b IN LET ripemd-mask1 ( [[d + ripemd-g ( e , a , b )] + [X [[ 4 ]]]] + ripemd-gg-const ) BE [asterisk IN LET asterisk BE [d IN LET ripemd-mask1 ( ripemd-rol ( d , 6 ) + c ) BE [asterisk IN LET asterisk BE [d IN LET ripemd-rol ( a , %% %1 %0 ) BE [asterisk IN LET asterisk BE [a IN LET ripemd-mask1 ( [[c + ripemd-g ( d , e , a )] + [X [[ %% %1 %3 ]]]] + ripemd-gg-const ) BE [asterisk IN LET asterisk BE [c IN LET ripemd-mask1 ( ripemd-rol ( c , 8 ) + b ) BE [asterisk IN LET asterisk BE [c IN LET ripemd-rol ( e , %% %1 %0 ) BE [asterisk IN LET asterisk BE [e IN LET ripemd-mask1 ( [[b + ripemd-g ( c , d , e )] + [X [[ 1 ]]]] + ripemd-gg-const ) BE [asterisk IN LET asterisk BE [b IN LET ripemd-mask1 ( ripemd-rol ( b , %% %1 %3 ) + a ) BE [asterisk IN LET asterisk BE [b IN LET ripemd-rol ( d , %% %1 %0 ) BE [asterisk IN LET asterisk BE [d IN LET ripemd-mask1 ( [[a + ripemd-g ( b , c , d )] + [X [[ %% %1 %0 ]]]] + ripemd-gg-const ) BE [asterisk IN LET asterisk BE [a IN LET ripemd-mask1 ( ripemd-rol ( a , %% %1 %1 ) + e ) BE [asterisk IN LET asterisk BE [a IN LET ripemd-rol ( c , %% %1 %0 ) BE [asterisk IN LET asterisk BE [c IN LET ripemd-mask1 ( [[e + ripemd-g ( a , b , c )] + [X [[ 6 ]]]] + ripemd-gg-const ) BE [asterisk IN LET asterisk BE [e IN LET ripemd-mask1 ( ripemd-rol ( e , 9 ) + d ) BE [asterisk IN LET asterisk BE [e IN LET ripemd-rol ( b , %% %1 %0 ) BE [asterisk IN LET asterisk BE [b IN LET ripemd-mask1 ( [[d + ripemd-g ( e , a , b )] + [X [[ %% %1 %5 ]]]] + ripemd-gg-const ) BE [asterisk IN LET asterisk BE [d IN LET ripemd-mask1 ( ripemd-rol ( d , 7 ) + c ) BE [asterisk IN LET asterisk BE [d IN LET ripemd-rol ( a , %% %1 %0 ) BE [asterisk IN LET asterisk BE [a IN LET ripemd-mask1 ( [[c + ripemd-g ( d , e , a )] + [X [[ 3 ]]]] + ripemd-gg-const ) BE [asterisk IN LET asterisk BE [c IN LET ripemd-mask1 ( ripemd-rol ( c , %% %1 %5 ) + b ) BE [asterisk IN LET asterisk BE [c IN LET ripemd-rol ( e , %% %1 %0 ) BE [asterisk IN LET asterisk BE [e IN LET ripemd-mask1 ( [[b + ripemd-g ( c , d , e )] + [X [[ %% %1 %2 ]]]] + ripemd-gg-const ) BE [asterisk IN LET asterisk BE [b IN LET ripemd-mask1 ( ripemd-rol ( b , 7 ) + a ) BE [asterisk IN LET asterisk BE [b IN LET ripemd-rol ( d , %% %1 %0 ) BE [asterisk IN LET asterisk BE [d IN LET ripemd-mask1 ( [[a + ripemd-g ( b , c , d )] + [X [[ 0 ]]]] + ripemd-gg-const ) BE [asterisk IN LET asterisk BE [a IN LET ripemd-mask1 ( ripemd-rol ( a , %% %1 %2 ) + e ) BE [asterisk IN LET asterisk BE [a IN LET ripemd-rol ( c , %% %1 %0 ) BE [asterisk IN LET asterisk BE [c IN LET ripemd-mask1 ( [[e + ripemd-g ( a , b , c )] + [X [[ 9 ]]]] + ripemd-gg-const ) BE [asterisk IN LET asterisk BE [e IN LET ripemd-mask1 ( ripemd-rol ( e , %% %1 %5 ) + d ) BE [asterisk IN LET asterisk BE [e IN LET ripemd-rol ( b , %% %1 %0 ) BE [asterisk IN LET asterisk BE [b IN LET ripemd-mask1 ( [[d + ripemd-g ( e , a , b )] + [X [[ 5 ]]]] + ripemd-gg-const ) BE [asterisk IN LET asterisk BE [d IN LET ripemd-mask1 ( ripemd-rol ( d , 9 ) + c ) BE [asterisk IN LET asterisk BE [d IN LET ripemd-rol ( a , %% %1 %0 ) BE [asterisk IN LET asterisk BE [a IN LET ripemd-mask1 ( [[c + ripemd-g ( d , e , a )] + [X [[ 2 ]]]] + ripemd-gg-const ) BE [asterisk IN LET asterisk BE [c IN LET ripemd-mask1 ( ripemd-rol ( c , %% %1 %1 ) + b ) BE [asterisk IN LET asterisk BE [c IN LET ripemd-rol ( e , %% %1 %0 ) BE [asterisk IN LET asterisk BE [e IN LET ripemd-mask1 ( [[b + ripemd-g ( c , d , e )] + [X [[ %% %1 %4 ]]]] + ripemd-gg-const ) BE [asterisk IN LET asterisk BE [b IN LET ripemd-mask1 ( ripemd-rol ( b , 7 ) + a ) BE [asterisk IN LET asterisk BE [b IN LET ripemd-rol ( d , %% %1 %0 ) BE [asterisk IN LET asterisk BE [d IN LET ripemd-mask1 ( [[a + ripemd-g ( b , c , d )] + [X [[ %% %1 %1 ]]]] + ripemd-gg-const ) BE [asterisk IN LET asterisk BE [a IN LET ripemd-mask1 ( ripemd-rol ( a , %% %1 %3 ) + e ) BE [asterisk IN LET asterisk BE [a IN LET ripemd-rol ( c , %% %1 %0 ) BE [asterisk IN LET asterisk BE [c IN LET ripemd-mask1 ( [[e + ripemd-g ( a , b , c )] + [X [[ 8 ]]]] + ripemd-gg-const ) BE [asterisk IN LET asterisk BE [e IN LET ripemd-mask1 ( ripemd-rol ( e , %% %1 %2 ) + d ) BE [asterisk IN LET asterisk BE [e IN LET ripemd-rol ( b , %% %1 %0 ) BE [asterisk IN LET asterisk BE [b IN LET ripemd-mask1 ( [[d + ripemd-h ( e , a , b )] + [X [[ 3 ]]]] + ripemd-hh-const ) BE [asterisk IN LET asterisk BE [d IN LET ripemd-mask1 ( ripemd-rol ( d , %% %1 %1 ) + c ) BE [asterisk IN LET asterisk BE [d IN LET ripemd-rol ( a , %% %1 %0 ) BE [asterisk IN LET asterisk BE [a IN LET ripemd-mask1 ( [[c + ripemd-h ( d , e , a )] + [X [[ %% %1 %0 ]]]] + ripemd-hh-const ) BE [asterisk IN LET asterisk BE [c IN LET ripemd-mask1 ( ripemd-rol ( c , %% %1 %3 ) + b ) BE [asterisk IN LET asterisk BE [c IN LET ripemd-rol ( e , %% %1 %0 ) BE [asterisk IN LET asterisk BE [e IN LET ripemd-mask1 ( [[b + ripemd-h ( c , d , e )] + [X [[ %% %1 %4 ]]]] + ripemd-hh-const ) BE [asterisk IN LET asterisk BE [b IN LET ripemd-mask1 ( ripemd-rol ( b , 6 ) + a ) BE [asterisk IN LET asterisk BE [b IN LET ripemd-rol ( d , %% %1 %0 ) BE [asterisk IN LET asterisk BE [d IN LET ripemd-mask1 ( [[a + ripemd-h ( b , c , d )] + [X [[ 4 ]]]] + ripemd-hh-const ) BE [asterisk IN LET asterisk BE [a IN LET ripemd-mask1 ( ripemd-rol ( a , 7 ) + e ) BE [asterisk IN LET asterisk BE [a IN LET ripemd-rol ( c , %% %1 %0 ) BE [asterisk IN LET asterisk BE [c IN LET ripemd-mask1 ( [[e + ripemd-h ( a , b , c )] + [X [[ 9 ]]]] + ripemd-hh-const ) BE [asterisk IN LET asterisk BE [e IN LET ripemd-mask1 ( ripemd-rol ( e , %% %1 %4 ) + d ) BE [asterisk IN LET asterisk BE [e IN LET ripemd-rol ( b , %% %1 %0 ) BE [asterisk IN LET asterisk BE [b IN LET ripemd-mask1 ( [[d + ripemd-h ( e , a , b )] + [X [[ %% %1 %5 ]]]] + ripemd-hh-const ) BE [asterisk IN LET asterisk BE [d IN LET ripemd-mask1 ( ripemd-rol ( d , 9 ) + c ) BE [asterisk IN LET asterisk BE [d IN LET ripemd-rol ( a , %% %1 %0 ) BE [asterisk IN LET asterisk BE [a IN LET ripemd-mask1 ( [[c + ripemd-h ( d , e , a )] + [X [[ 8 ]]]] + ripemd-hh-const ) BE [asterisk IN LET asterisk BE [c IN LET ripemd-mask1 ( ripemd-rol ( c , %% %1 %3 ) + b ) BE [asterisk IN LET asterisk BE [c IN LET ripemd-rol ( e , %% %1 %0 ) BE [asterisk IN LET asterisk BE [e IN LET ripemd-mask1 ( [[b + ripemd-h ( c , d , e )] + [X [[ 1 ]]]] + ripemd-hh-const ) BE [asterisk IN LET asterisk BE [b IN LET ripemd-mask1 ( ripemd-rol ( b , %% %1 %5 ) + a ) BE [asterisk IN LET asterisk BE [b IN LET ripemd-rol ( d , %% %1 %0 ) BE [asterisk IN LET asterisk BE [d IN LET ripemd-mask1 ( [[a + ripemd-h ( b , c , d )] + [X [[ 2 ]]]] + ripemd-hh-const ) BE [asterisk IN LET asterisk BE [a IN LET ripemd-mask1 ( ripemd-rol ( a , %% %1 %4 ) + e ) BE [asterisk IN LET asterisk BE [a IN LET ripemd-rol ( c , %% %1 %0 ) BE [asterisk IN LET asterisk BE [c IN LET ripemd-mask1 ( [[e + ripemd-h ( a , b , c )] + [X [[ 7 ]]]] + ripemd-hh-const ) BE [asterisk IN LET asterisk BE [e IN LET ripemd-mask1 ( ripemd-rol ( e , 8 ) + d ) BE [asterisk IN LET asterisk BE [e IN LET ripemd-rol ( b , %% %1 %0 ) BE [asterisk IN LET asterisk BE [b IN LET ripemd-mask1 ( [[d + ripemd-h ( e , a , b )] + [X [[ 0 ]]]] + ripemd-hh-const ) BE [asterisk IN LET asterisk BE [d IN LET ripemd-mask1 ( ripemd-rol ( d , %% %1 %3 ) + c ) BE [asterisk IN LET asterisk BE [d IN LET ripemd-rol ( a , %% %1 %0 ) BE [asterisk IN LET asterisk BE [a IN LET ripemd-mask1 ( [[c + ripemd-h ( d , e , a )] + [X [[ 6 ]]]] + ripemd-hh-const ) BE [asterisk IN LET asterisk BE [c IN LET ripemd-mask1 ( ripemd-rol ( c , 6 ) + b ) BE [asterisk IN LET asterisk BE [c IN LET ripemd-rol ( e , %% %1 %0 ) BE [asterisk IN LET asterisk BE [e IN LET ripemd-mask1 ( [[b + ripemd-h ( c , d , e )] + [X [[ %% %1 %3 ]]]] + ripemd-hh-const ) BE [asterisk IN LET asterisk BE [b IN LET ripemd-mask1 ( ripemd-rol ( b , 5 ) + a ) BE [asterisk IN LET asterisk BE [b IN LET ripemd-rol ( d , %% %1 %0 ) BE [asterisk IN LET asterisk BE [d IN LET ripemd-mask1 ( [[a + ripemd-h ( b , c , d )] + [X [[ %% %1 %1 ]]]] + ripemd-hh-const ) BE [asterisk IN LET asterisk BE [a IN LET ripemd-mask1 ( ripemd-rol ( a , %% %1 %2 ) + e ) BE [asterisk IN LET asterisk BE [a IN LET ripemd-rol ( c , %% %1 %0 ) BE [asterisk IN LET asterisk BE [c IN LET ripemd-mask1 ( [[e + ripemd-h ( a , b , c )] + [X [[ 5 ]]]] + ripemd-hh-const ) BE [asterisk IN LET asterisk BE [e IN LET ripemd-mask1 ( ripemd-rol ( e , 7 ) + d ) BE [asterisk IN LET asterisk BE [e IN LET ripemd-rol ( b , %% %1 %0 ) BE [asterisk IN LET asterisk BE [b IN LET ripemd-mask1 ( [[d + ripemd-h ( e , a , b )] + [X [[ %% %1 %2 ]]]] + ripemd-hh-const ) BE [asterisk IN LET asterisk BE [d IN LET ripemd-mask1 ( ripemd-rol ( d , 5 ) + c ) BE [asterisk IN LET asterisk BE [d IN LET ripemd-rol ( a , %% %1 %0 ) BE [asterisk IN LET asterisk BE [a IN LET ripemd-mask1 ( [[c + ripemd-i ( d , e , a )] + [X [[ 1 ]]]] + ripemd-ii-const ) BE [asterisk IN LET asterisk BE [c IN LET ripemd-mask1 ( ripemd-rol ( c , %% %1 %1 ) + b ) BE [asterisk IN LET asterisk BE [c IN LET ripemd-rol ( e , %% %1 %0 ) BE [asterisk IN LET asterisk BE [e IN LET ripemd-mask1 ( [[b + ripemd-i ( c , d , e )] + [X [[ 9 ]]]] + ripemd-ii-const ) BE [asterisk IN LET asterisk BE [b IN LET ripemd-mask1 ( ripemd-rol ( b , %% %1 %2 ) + a ) BE [asterisk IN LET asterisk BE [b IN LET ripemd-rol ( d , %% %1 %0 ) BE [asterisk IN LET asterisk BE [d IN LET ripemd-mask1 ( [[a + ripemd-i ( b , c , d )] + [X [[ %% %1 %1 ]]]] + ripemd-ii-const ) BE [asterisk IN LET asterisk BE [a IN LET ripemd-mask1 ( ripemd-rol ( a , %% %1 %4 ) + e ) BE [asterisk IN LET asterisk BE [a IN LET ripemd-rol ( c , %% %1 %0 ) BE [asterisk IN LET asterisk BE [c IN LET ripemd-mask1 ( [[e + ripemd-i ( a , b , c )] + [X [[ %% %1 %0 ]]]] + ripemd-ii-const ) BE [asterisk IN LET asterisk BE [e IN LET ripemd-mask1 ( ripemd-rol ( e , %% %1 %5 ) + d ) BE [asterisk IN LET asterisk BE [e IN LET ripemd-rol ( b , %% %1 %0 ) BE [asterisk IN LET asterisk BE [b IN LET ripemd-mask1 ( [[d + ripemd-i ( e , a , b )] + [X [[ 0 ]]]] + ripemd-ii-const ) BE [asterisk IN LET asterisk BE [d IN LET ripemd-mask1 ( ripemd-rol ( d , %% %1 %4 ) + c ) BE [asterisk IN LET asterisk BE [d IN LET ripemd-rol ( a , %% %1 %0 ) BE [asterisk IN LET asterisk BE [a IN LET ripemd-mask1 ( [[c + ripemd-i ( d , e , a )] + [X [[ 8 ]]]] + ripemd-ii-const ) BE [asterisk IN LET asterisk BE [c IN LET ripemd-mask1 ( ripemd-rol ( c , %% %1 %5 ) + b ) BE [asterisk IN LET asterisk BE [c IN LET ripemd-rol ( e , %% %1 %0 ) BE [asterisk IN LET asterisk BE [e IN LET ripemd-mask1 ( [[b + ripemd-i ( c , d , e )] + [X [[ %% %1 %2 ]]]] + ripemd-ii-const ) BE [asterisk IN LET asterisk BE [b IN LET ripemd-mask1 ( ripemd-rol ( b , 9 ) + a ) BE [asterisk IN LET asterisk BE [b IN LET ripemd-rol ( d , %% %1 %0 ) BE [asterisk IN LET asterisk BE [d IN LET ripemd-mask1 ( [[a + ripemd-i ( b , c , d )] + [X [[ 4 ]]]] + ripemd-ii-const ) BE [asterisk IN LET asterisk BE [a IN LET ripemd-mask1 ( ripemd-rol ( a , 8 ) + e ) BE [asterisk IN LET asterisk BE [a IN LET ripemd-rol ( c , %% %1 %0 ) BE [asterisk IN LET asterisk BE [c IN LET ripemd-mask1 ( [[e + ripemd-i ( a , b , c )] + [X [[ %% %1 %3 ]]]] + ripemd-ii-const ) BE [asterisk IN LET asterisk BE [e IN LET ripemd-mask1 ( ripemd-rol ( e , 9 ) + d ) BE [asterisk IN LET asterisk BE [e IN LET ripemd-rol ( b , %% %1 %0 ) BE [asterisk IN LET asterisk BE [b IN LET ripemd-mask1 ( [[d + ripemd-i ( e , a , b )] + [X [[ 3 ]]]] + ripemd-ii-const ) BE [asterisk IN LET asterisk BE [d IN LET ripemd-mask1 ( ripemd-rol ( d , %% %1 %4 ) + c ) BE [asterisk IN LET asterisk BE [d IN LET ripemd-rol ( a , %% %1 %0 ) BE [asterisk IN LET asterisk BE [a IN LET ripemd-mask1 ( [[c + ripemd-i ( d , e , a )] + [X [[ 7 ]]]] + ripemd-ii-const ) BE [asterisk IN LET asterisk BE [c IN LET ripemd-mask1 ( ripemd-rol ( c , 5 ) + b ) BE [asterisk IN LET asterisk BE [c IN LET ripemd-rol ( e , %% %1 %0 ) BE [asterisk IN LET asterisk BE [e IN LET ripemd-mask1 ( [[b + ripemd-i ( c , d , e )] + [X [[ %% %1 %5 ]]]] + ripemd-ii-const ) BE [asterisk IN LET asterisk BE [b IN LET ripemd-mask1 ( ripemd-rol ( b , 6 ) + a ) BE [asterisk IN LET asterisk BE [b IN LET ripemd-rol ( d , %% %1 %0 ) BE [asterisk IN LET asterisk BE [d IN LET ripemd-mask1 ( [[a + ripemd-i ( b , c , d )] + [X [[ %% %1 %4 ]]]] + ripemd-ii-const ) BE [asterisk IN LET asterisk BE [a IN LET ripemd-mask1 ( ripemd-rol ( a , 8 ) + e ) BE [asterisk IN LET asterisk BE [a IN LET ripemd-rol ( c , %% %1 %0 ) BE [asterisk IN LET asterisk BE [c IN LET ripemd-mask1 ( [[e + ripemd-i ( a , b , c )] + [X [[ 5 ]]]] + ripemd-ii-const ) BE [asterisk IN LET asterisk BE [e IN LET ripemd-mask1 ( ripemd-rol ( e , 6 ) + d ) BE [asterisk IN LET asterisk BE [e IN LET ripemd-rol ( b , %% %1 %0 ) BE [asterisk IN LET asterisk BE [b IN LET ripemd-mask1 ( [[d + ripemd-i ( e , a , b )] + [X [[ 6 ]]]] + ripemd-ii-const ) BE [asterisk IN LET asterisk BE [d IN LET ripemd-mask1 ( ripemd-rol ( d , 5 ) + c ) BE [asterisk IN LET asterisk BE [d IN LET ripemd-rol ( a , %% %1 %0 ) BE [asterisk IN LET asterisk BE [a IN LET ripemd-mask1 ( [[c + ripemd-i ( d , e , a )] + [X [[ 2 ]]]] + ripemd-ii-const ) BE [asterisk IN LET asterisk BE [c IN LET ripemd-mask1 ( ripemd-rol ( c , %% %1 %2 ) + b ) BE [asterisk IN LET asterisk BE [c IN LET ripemd-rol ( e , %% %1 %0 ) BE [asterisk IN LET asterisk BE [e IN LET ripemd-mask1 ( [[b + ripemd-j ( c , d , e )] + [X [[ 4 ]]]] + ripemd-jj-const ) BE [asterisk IN LET asterisk BE [b IN LET ripemd-mask1 ( ripemd-rol ( b , 9 ) + a ) BE [asterisk IN LET asterisk BE [b IN LET ripemd-rol ( d , %% %1 %0 ) BE [asterisk IN LET asterisk BE [d IN LET ripemd-mask1 ( [[a + ripemd-j ( b , c , d )] + [X [[ 0 ]]]] + ripemd-jj-const ) BE [asterisk IN LET asterisk BE [a IN LET ripemd-mask1 ( ripemd-rol ( a , %% %1 %5 ) + e ) BE [asterisk IN LET asterisk BE [a IN LET ripemd-rol ( c , %% %1 %0 ) BE [asterisk IN LET asterisk BE [c IN LET ripemd-mask1 ( [[e + ripemd-j ( a , b , c )] + [X [[ 5 ]]]] + ripemd-jj-const ) BE [asterisk IN LET asterisk BE [e IN LET ripemd-mask1 ( ripemd-rol ( e , 5 ) + d ) BE [asterisk IN LET asterisk BE [e IN LET ripemd-rol ( b , %% %1 %0 ) BE [asterisk IN LET asterisk BE [b IN LET ripemd-mask1 ( [[d + ripemd-j ( e , a , b )] + [X [[ 9 ]]]] + ripemd-jj-const ) BE [asterisk IN LET asterisk BE [d IN LET ripemd-mask1 ( ripemd-rol ( d , %% %1 %1 ) + c ) BE [asterisk IN LET asterisk BE [d IN LET ripemd-rol ( a , %% %1 %0 ) BE [asterisk IN LET asterisk BE [a IN LET ripemd-mask1 ( [[c + ripemd-j ( d , e , a )] + [X [[ 7 ]]]] + ripemd-jj-const ) BE [asterisk IN LET asterisk BE [c IN LET ripemd-mask1 ( ripemd-rol ( c , 6 ) + b ) BE [asterisk IN LET asterisk BE [c IN LET ripemd-rol ( e , %% %1 %0 ) BE [asterisk IN LET asterisk BE [e IN LET ripemd-mask1 ( [[b + ripemd-j ( c , d , e )] + [X [[ %% %1 %2 ]]]] + ripemd-jj-const ) BE [asterisk IN LET asterisk BE [b IN LET ripemd-mask1 ( ripemd-rol ( b , 8 ) + a ) BE [asterisk IN LET asterisk BE [b IN LET ripemd-rol ( d , %% %1 %0 ) BE [asterisk IN LET asterisk BE [d IN LET ripemd-mask1 ( [[a + ripemd-j ( b , c , d )] + [X [[ 2 ]]]] + ripemd-jj-const ) BE [asterisk IN LET asterisk BE [a IN LET ripemd-mask1 ( ripemd-rol ( a , %% %1 %3 ) + e ) BE [asterisk IN LET asterisk BE [a IN LET ripemd-rol ( c , %% %1 %0 ) BE [asterisk IN LET asterisk BE [c IN LET ripemd-mask1 ( [[e + ripemd-j ( a , b , c )] + [X [[ %% %1 %0 ]]]] + ripemd-jj-const ) BE [asterisk IN LET asterisk BE [e IN LET ripemd-mask1 ( ripemd-rol ( e , %% %1 %2 ) + d ) BE [asterisk IN LET asterisk BE [e IN LET ripemd-rol ( b , %% %1 %0 ) BE [asterisk IN LET asterisk BE [b IN LET ripemd-mask1 ( [[d + ripemd-j ( e , a , b )] + [X [[ %% %1 %4 ]]]] + ripemd-jj-const ) BE [asterisk IN LET asterisk BE [d IN LET ripemd-mask1 ( ripemd-rol ( d , 5 ) + c ) BE [asterisk IN LET asterisk BE [d IN LET ripemd-rol ( a , %% %1 %0 ) BE [asterisk IN LET asterisk BE [a IN LET ripemd-mask1 ( [[c + ripemd-j ( d , e , a )] + [X [[ 1 ]]]] + ripemd-jj-const ) BE [asterisk IN LET asterisk BE [c IN LET ripemd-mask1 ( ripemd-rol ( c , %% %1 %2 ) + b ) BE [asterisk IN LET asterisk BE [c IN LET ripemd-rol ( e , %% %1 %0 ) BE [asterisk IN LET asterisk BE [e IN LET ripemd-mask1 ( [[b + ripemd-j ( c , d , e )] + [X [[ 3 ]]]] + ripemd-jj-const ) BE [asterisk IN LET asterisk BE [b IN LET ripemd-mask1 ( ripemd-rol ( b , %% %1 %3 ) + a ) BE [asterisk IN LET asterisk BE [b IN LET ripemd-rol ( d , %% %1 %0 ) BE [asterisk IN LET asterisk BE [d IN LET ripemd-mask1 ( [[a + ripemd-j ( b , c , d )] + [X [[ 8 ]]]] + ripemd-jj-const ) BE [asterisk IN LET asterisk BE [a IN LET ripemd-mask1 ( ripemd-rol ( a , %% %1 %4 ) + e ) BE [asterisk IN LET asterisk BE [a IN LET ripemd-rol ( c , %% %1 %0 ) BE [asterisk IN LET asterisk BE [c IN LET ripemd-mask1 ( [[e + ripemd-j ( a , b , c )] + [X [[ %% %1 %1 ]]]] + ripemd-jj-const ) BE [asterisk IN LET asterisk BE [e IN LET ripemd-mask1 ( ripemd-rol ( e , %% %1 %1 ) + d ) BE [asterisk IN LET asterisk BE [e IN LET ripemd-rol ( b , %% %1 %0 ) BE [asterisk IN LET asterisk BE [b IN LET ripemd-mask1 ( [[d + ripemd-j ( e , a , b )] + [X [[ 6 ]]]] + ripemd-jj-const ) BE [asterisk IN LET asterisk BE [d IN LET ripemd-mask1 ( ripemd-rol ( d , 8 ) + c ) BE [asterisk IN LET asterisk BE [d IN LET ripemd-rol ( a , %% %1 %0 ) BE [asterisk IN LET asterisk BE [a IN LET ripemd-mask1 ( [[c + ripemd-j ( d , e , a )] + [X [[ %% %1 %5 ]]]] + ripemd-jj-const ) BE [asterisk IN LET asterisk BE [c IN LET ripemd-mask1 ( ripemd-rol ( c , 5 ) + b ) BE [asterisk IN LET asterisk BE [c IN LET ripemd-rol ( e , %% %1 %0 ) BE [asterisk IN LET asterisk BE [e IN LET ripemd-mask1 ( [[b + ripemd-j ( c , d , e )] + [X [[ %% %1 %3 ]]]] + ripemd-jj-const ) BE [asterisk IN LET asterisk BE [b IN LET ripemd-mask1 ( ripemd-rol ( b , 6 ) + a ) BE [asterisk IN LET asterisk BE [b IN LET ripemd-rol ( d , %% %1 %0 ) BE [asterisk IN LET asterisk BE [d IN LET ripemd-mask1 ( [[A + ripemd-j ( B , C , D )] + [X [[ 5 ]]]] + ripemd-jjj-const ) BE [asterisk IN LET asterisk BE [A IN LET ripemd-mask1 ( ripemd-rol ( A , 8 ) + E ) BE [asterisk IN LET asterisk BE [A IN LET ripemd-rol ( C , %% %1 %0 ) BE [asterisk IN LET asterisk BE [C IN LET ripemd-mask1 ( [[E + ripemd-j ( A , B , C )] + [X [[ %% %1 %4 ]]]] + ripemd-jjj-const ) BE [asterisk IN LET asterisk BE [E IN LET ripemd-mask1 ( ripemd-rol ( E , 9 ) + D ) BE [asterisk IN LET asterisk BE [E IN LET ripemd-rol ( B , %% %1 %0 ) BE [asterisk IN LET asterisk BE [B IN LET ripemd-mask1 ( [[D + ripemd-j ( E , A , B )] + [X [[ 7 ]]]] + ripemd-jjj-const ) BE [asterisk IN LET asterisk BE [D IN LET ripemd-mask1 ( ripemd-rol ( D , 9 ) + C ) BE [asterisk IN LET asterisk BE [D IN LET ripemd-rol ( A , %% %1 %0 ) BE [asterisk IN LET asterisk BE [A IN LET ripemd-mask1 ( [[C + ripemd-j ( D , E , A )] + [X [[ 0 ]]]] + ripemd-jjj-const ) BE [asterisk IN LET asterisk BE [C IN LET ripemd-mask1 ( ripemd-rol ( C , %% %1 %1 ) + B ) BE [asterisk IN LET asterisk BE [C IN LET ripemd-rol ( E , %% %1 %0 ) BE [asterisk IN LET asterisk BE [E IN LET ripemd-mask1 ( [[B + ripemd-j ( C , D , E )] + [X [[ 9 ]]]] + ripemd-jjj-const ) BE [asterisk IN LET asterisk BE [B IN LET ripemd-mask1 ( ripemd-rol ( B , %% %1 %3 ) + A ) BE [asterisk IN LET asterisk BE [B IN LET ripemd-rol ( D , %% %1 %0 ) BE [asterisk IN LET asterisk BE [D IN LET ripemd-mask1 ( [[A + ripemd-j ( B , C , D )] + [X [[ 2 ]]]] + ripemd-jjj-const ) BE [asterisk IN LET asterisk BE [A IN LET ripemd-mask1 ( ripemd-rol ( A , %% %1 %5 ) + E ) BE [asterisk IN LET asterisk BE [A IN LET ripemd-rol ( C , %% %1 %0 ) BE [asterisk IN LET asterisk BE [C IN LET ripemd-mask1 ( [[E + ripemd-j ( A , B , C )] + [X [[ %% %1 %1 ]]]] + ripemd-jjj-const ) BE [asterisk IN LET asterisk BE [E IN LET ripemd-mask1 ( ripemd-rol ( E , %% %1 %5 ) + D ) BE [asterisk IN LET asterisk BE [E IN LET ripemd-rol ( B , %% %1 %0 ) BE [asterisk IN LET asterisk BE [B IN LET ripemd-mask1 ( [[D + ripemd-j ( E , A , B )] + [X [[ 4 ]]]] + ripemd-jjj-const ) BE [asterisk IN LET asterisk BE [D IN LET ripemd-mask1 ( ripemd-rol ( D , 5 ) + C ) BE [asterisk IN LET asterisk BE [D IN LET ripemd-rol ( A , %% %1 %0 ) BE [asterisk IN LET asterisk BE [A IN LET ripemd-mask1 ( [[C + ripemd-j ( D , E , A )] + [X [[ %% %1 %3 ]]]] + ripemd-jjj-const ) BE [asterisk IN LET asterisk BE [C IN LET ripemd-mask1 ( ripemd-rol ( C , 7 ) + B ) BE [asterisk IN LET asterisk BE [C IN LET ripemd-rol ( E , %% %1 %0 ) BE [asterisk IN LET asterisk BE [E IN LET ripemd-mask1 ( [[B + ripemd-j ( C , D , E )] + [X [[ 6 ]]]] + ripemd-jjj-const ) BE [asterisk IN LET asterisk BE [B IN LET ripemd-mask1 ( ripemd-rol ( B , 7 ) + A ) BE [asterisk IN LET asterisk BE [B IN LET ripemd-rol ( D , %% %1 %0 ) BE [asterisk IN LET asterisk BE [D IN LET ripemd-mask1 ( [[A + ripemd-j ( B , C , D )] + [X [[ %% %1 %5 ]]]] + ripemd-jjj-const ) BE [asterisk IN LET asterisk BE [A IN LET ripemd-mask1 ( ripemd-rol ( A , 8 ) + E ) BE [asterisk IN LET asterisk BE [A IN LET ripemd-rol ( C , %% %1 %0 ) BE [asterisk IN LET asterisk BE [C IN LET ripemd-mask1 ( [[E + ripemd-j ( A , B , C )] + [X [[ 8 ]]]] + ripemd-jjj-const ) BE [asterisk IN LET asterisk BE [E IN LET ripemd-mask1 ( ripemd-rol ( E , %% %1 %1 ) + D ) BE [asterisk IN LET asterisk BE [E IN LET ripemd-rol ( B , %% %1 %0 ) BE [asterisk IN LET asterisk BE [B IN LET ripemd-mask1 ( [[D + ripemd-j ( E , A , B )] + [X [[ 1 ]]]] + ripemd-jjj-const ) BE [asterisk IN LET asterisk BE [D IN LET ripemd-mask1 ( ripemd-rol ( D , %% %1 %4 ) + C ) BE [asterisk IN LET asterisk BE [D IN LET ripemd-rol ( A , %% %1 %0 ) BE [asterisk IN LET asterisk BE [A IN LET ripemd-mask1 ( [[C + ripemd-j ( D , E , A )] + [X [[ %% %1 %0 ]]]] + ripemd-jjj-const ) BE [asterisk IN LET asterisk BE [C IN LET ripemd-mask1 ( ripemd-rol ( C , %% %1 %4 ) + B ) BE [asterisk IN LET asterisk BE [C IN LET ripemd-rol ( E , %% %1 %0 ) BE [asterisk IN LET asterisk BE [E IN LET ripemd-mask1 ( [[B + ripemd-j ( C , D , E )] + [X [[ 3 ]]]] + ripemd-jjj-const ) BE [asterisk IN LET asterisk BE [B IN LET ripemd-mask1 ( ripemd-rol ( B , %% %1 %2 ) + A ) BE [asterisk IN LET asterisk BE [B IN LET ripemd-rol ( D , %% %1 %0 ) BE [asterisk IN LET asterisk BE [D IN LET ripemd-mask1 ( [[A + ripemd-j ( B , C , D )] + [X [[ %% %1 %2 ]]]] + ripemd-jjj-const ) BE [asterisk IN LET asterisk BE [A IN LET ripemd-mask1 ( ripemd-rol ( A , 6 ) + E ) BE [asterisk IN LET asterisk BE [A IN LET ripemd-rol ( C , %% %1 %0 ) BE [asterisk IN LET asterisk BE [C IN LET ripemd-mask1 ( [[E + ripemd-i ( A , B , C )] + [X [[ 6 ]]]] + ripemd-iii-const ) BE [asterisk IN LET asterisk BE [E IN LET ripemd-mask1 ( ripemd-rol ( E , 9 ) + D ) BE [asterisk IN LET asterisk BE [E IN LET ripemd-rol ( B , %% %1 %0 ) BE [asterisk IN LET asterisk BE [B IN LET ripemd-mask1 ( [[D + ripemd-i ( E , A , B )] + [X [[ %% %1 %1 ]]]] + ripemd-iii-const ) BE [asterisk IN LET asterisk BE [D IN LET ripemd-mask1 ( ripemd-rol ( D , %% %1 %3 ) + C ) BE [asterisk IN LET asterisk BE [D IN LET ripemd-rol ( A , %% %1 %0 ) BE [asterisk IN LET asterisk BE [A IN LET ripemd-mask1 ( [[C + ripemd-i ( D , E , A )] + [X [[ 3 ]]]] + ripemd-iii-const ) BE [asterisk IN LET asterisk BE [C IN LET ripemd-mask1 ( ripemd-rol ( C , %% %1 %5 ) + B ) BE [asterisk IN LET asterisk BE [C IN LET ripemd-rol ( E , %% %1 %0 ) BE [asterisk IN LET asterisk BE [E IN LET ripemd-mask1 ( [[B + ripemd-i ( C , D , E )] + [X [[ 7 ]]]] + ripemd-iii-const ) BE [asterisk IN LET asterisk BE [B IN LET ripemd-mask1 ( ripemd-rol ( B , 7 ) + A ) BE [asterisk IN LET asterisk BE [B IN LET ripemd-rol ( D , %% %1 %0 ) BE [asterisk IN LET asterisk BE [D IN LET ripemd-mask1 ( [[A + ripemd-i ( B , C , D )] + [X [[ 0 ]]]] + ripemd-iii-const ) BE [asterisk IN LET asterisk BE [A IN LET ripemd-mask1 ( ripemd-rol ( A , %% %1 %2 ) + E ) BE [asterisk IN LET asterisk BE [A IN LET ripemd-rol ( C , %% %1 %0 ) BE [asterisk IN LET asterisk BE [C IN LET ripemd-mask1 ( [[E + ripemd-i ( A , B , C )] + [X [[ %% %1 %3 ]]]] + ripemd-iii-const ) BE [asterisk IN LET asterisk BE [E IN LET ripemd-mask1 ( ripemd-rol ( E , 8 ) + D ) BE [asterisk IN LET asterisk BE [E IN LET ripemd-rol ( B , %% %1 %0 ) BE [asterisk IN LET asterisk BE [B IN LET ripemd-mask1 ( [[D + ripemd-i ( E , A , B )] + [X [[ 5 ]]]] + ripemd-iii-const ) BE [asterisk IN LET asterisk BE [D IN LET ripemd-mask1 ( ripemd-rol ( D , 9 ) + C ) BE [asterisk IN LET asterisk BE [D IN LET ripemd-rol ( A , %% %1 %0 ) BE [asterisk IN LET asterisk BE [A IN LET ripemd-mask1 ( [[C + ripemd-i ( D , E , A )] + [X [[ %% %1 %0 ]]]] + ripemd-iii-const ) BE [asterisk IN LET asterisk BE [C IN LET ripemd-mask1 ( ripemd-rol ( C , %% %1 %1 ) + B ) BE [asterisk IN LET asterisk BE [C IN LET ripemd-rol ( E , %% %1 %0 ) BE [asterisk IN LET asterisk BE [E IN LET ripemd-mask1 ( [[B + ripemd-i ( C , D , E )] + [X [[ %% %1 %4 ]]]] + ripemd-iii-const ) BE [asterisk IN LET asterisk BE [B IN LET ripemd-mask1 ( ripemd-rol ( B , 7 ) + A ) BE [asterisk IN LET asterisk BE [B IN LET ripemd-rol ( D , %% %1 %0 ) BE [asterisk IN LET asterisk BE [D IN LET ripemd-mask1 ( [[A + ripemd-i ( B , C , D )] + [X [[ %% %1 %5 ]]]] + ripemd-iii-const ) BE [asterisk IN LET asterisk BE [A IN LET ripemd-mask1 ( ripemd-rol ( A , 7 ) + E ) BE [asterisk IN LET asterisk BE [A IN LET ripemd-rol ( C , %% %1 %0 ) BE [asterisk IN LET asterisk BE [C IN LET ripemd-mask1 ( [[E + ripemd-i ( A , B , C )] + [X [[ 8 ]]]] + ripemd-iii-const ) BE [asterisk IN LET asterisk BE [E IN LET ripemd-mask1 ( ripemd-rol ( E , %% %1 %2 ) + D ) BE [asterisk IN LET asterisk BE [E IN LET ripemd-rol ( B , %% %1 %0 ) BE [asterisk IN LET asterisk BE [B IN LET ripemd-mask1 ( [[D + ripemd-i ( E , A , B )] + [X [[ %% %1 %2 ]]]] + ripemd-iii-const ) BE [asterisk IN LET asterisk BE [D IN LET ripemd-mask1 ( ripemd-rol ( D , 7 ) + C ) BE [asterisk IN LET asterisk BE [D IN LET ripemd-rol ( A , %% %1 %0 ) BE [asterisk IN LET asterisk BE [A IN LET ripemd-mask1 ( [[C + ripemd-i ( D , E , A )] + [X [[ 4 ]]]] + ripemd-iii-const ) BE [asterisk IN LET asterisk BE [C IN LET ripemd-mask1 ( ripemd-rol ( C , 6 ) + B ) BE [asterisk IN LET asterisk BE [C IN LET ripemd-rol ( E , %% %1 %0 ) BE [asterisk IN LET asterisk BE [E IN LET ripemd-mask1 ( [[B + ripemd-i ( C , D , E )] + [X [[ 9 ]]]] + ripemd-iii-const ) BE [asterisk IN LET asterisk BE [B IN LET ripemd-mask1 ( ripemd-rol ( B , %% %1 %5 ) + A ) BE [asterisk IN LET asterisk BE [B IN LET ripemd-rol ( D , %% %1 %0 ) BE [asterisk IN LET asterisk BE [D IN LET ripemd-mask1 ( [[A + ripemd-i ( B , C , D )] + [X [[ 1 ]]]] + ripemd-iii-const ) BE [asterisk IN LET asterisk BE [A IN LET ripemd-mask1 ( ripemd-rol ( A , %% %1 %3 ) + E ) BE [asterisk IN LET asterisk BE [A IN LET ripemd-rol ( C , %% %1 %0 ) BE [asterisk IN LET asterisk BE [C IN LET ripemd-mask1 ( [[E + ripemd-i ( A , B , C )] + [X [[ 2 ]]]] + ripemd-iii-const ) BE [asterisk IN LET asterisk BE [E IN LET ripemd-mask1 ( ripemd-rol ( E , %% %1 %1 ) + D ) BE [asterisk IN LET asterisk BE [E IN LET ripemd-rol ( B , %% %1 %0 ) BE [asterisk IN LET asterisk BE [B IN LET ripemd-mask1 ( [[D + ripemd-h ( E , A , B )] + [X [[ %% %1 %5 ]]]] + ripemd-hhh-const ) BE [asterisk IN LET asterisk BE [D IN LET ripemd-mask1 ( ripemd-rol ( D , 9 ) + C ) BE [asterisk IN LET asterisk BE [D IN LET ripemd-rol ( A , %% %1 %0 ) BE [asterisk IN LET asterisk BE [A IN LET ripemd-mask1 ( [[C + ripemd-h ( D , E , A )] + [X [[ 5 ]]]] + ripemd-hhh-const ) BE [asterisk IN LET asterisk BE [C IN LET ripemd-mask1 ( ripemd-rol ( C , 7 ) + B ) BE [asterisk IN LET asterisk BE [C IN LET ripemd-rol ( E , %% %1 %0 ) BE [asterisk IN LET asterisk BE [E IN LET ripemd-mask1 ( [[B + ripemd-h ( C , D , E )] + [X [[ 1 ]]]] + ripemd-hhh-const ) BE [asterisk IN LET asterisk BE [B IN LET ripemd-mask1 ( ripemd-rol ( B , %% %1 %5 ) + A ) BE [asterisk IN LET asterisk BE [B IN LET ripemd-rol ( D , %% %1 %0 ) BE [asterisk IN LET asterisk BE [D IN LET ripemd-mask1 ( [[A + ripemd-h ( B , C , D )] + [X [[ 3 ]]]] + ripemd-hhh-const ) BE [asterisk IN LET asterisk BE [A IN LET ripemd-mask1 ( ripemd-rol ( A , %% %1 %1 ) + E ) BE [asterisk IN LET asterisk BE [A IN LET ripemd-rol ( C , %% %1 %0 ) BE [asterisk IN LET asterisk BE [C IN LET ripemd-mask1 ( [[E + ripemd-h ( A , B , C )] + [X [[ 7 ]]]] + ripemd-hhh-const ) BE [asterisk IN LET asterisk BE [E IN LET ripemd-mask1 ( ripemd-rol ( E , 8 ) + D ) BE [asterisk IN LET asterisk BE [E IN LET ripemd-rol ( B , %% %1 %0 ) BE [asterisk IN LET asterisk BE [B IN LET ripemd-mask1 ( [[D + ripemd-h ( E , A , B )] + [X [[ %% %1 %4 ]]]] + ripemd-hhh-const ) BE [asterisk IN LET asterisk BE [D IN LET ripemd-mask1 ( ripemd-rol ( D , 6 ) + C ) BE [asterisk IN LET asterisk BE [D IN LET ripemd-rol ( A , %% %1 %0 ) BE [asterisk IN LET asterisk BE [A IN LET ripemd-mask1 ( [[C + ripemd-h ( D , E , A )] + [X [[ 6 ]]]] + ripemd-hhh-const ) BE [asterisk IN LET asterisk BE [C IN LET ripemd-mask1 ( ripemd-rol ( C , 6 ) + B ) BE [asterisk IN LET asterisk BE [C IN LET ripemd-rol ( E , %% %1 %0 ) BE [asterisk IN LET asterisk BE [E IN LET ripemd-mask1 ( [[B + ripemd-h ( C , D , E )] + [X [[ 9 ]]]] + ripemd-hhh-const ) BE [asterisk IN LET asterisk BE [B IN LET ripemd-mask1 ( ripemd-rol ( B , %% %1 %4 ) + A ) BE [asterisk IN LET asterisk BE [B IN LET ripemd-rol ( D , %% %1 %0 ) BE [asterisk IN LET asterisk BE [D IN LET ripemd-mask1 ( [[A + ripemd-h ( B , C , D )] + [X [[ %% %1 %1 ]]]] + ripemd-hhh-const ) BE [asterisk IN LET asterisk BE [A IN LET ripemd-mask1 ( ripemd-rol ( A , %% %1 %2 ) + E ) BE [asterisk IN LET asterisk BE [A IN LET ripemd-rol ( C , %% %1 %0 ) BE [asterisk IN LET asterisk BE [C IN LET ripemd-mask1 ( [[E + ripemd-h ( A , B , C )] + [X [[ 8 ]]]] + ripemd-hhh-const ) BE [asterisk IN LET asterisk BE [E IN LET ripemd-mask1 ( ripemd-rol ( E , %% %1 %3 ) + D ) BE [asterisk IN LET asterisk BE [E IN LET ripemd-rol ( B , %% %1 %0 ) BE [asterisk IN LET asterisk BE [B IN LET ripemd-mask1 ( [[D + ripemd-h ( E , A , B )] + [X [[ %% %1 %2 ]]]] + ripemd-hhh-const ) BE [asterisk IN LET asterisk BE [D IN LET ripemd-mask1 ( ripemd-rol ( D , 5 ) + C ) BE [asterisk IN LET asterisk BE [D IN LET ripemd-rol ( A , %% %1 %0 ) BE [asterisk IN LET asterisk BE [A IN LET ripemd-mask1 ( [[C + ripemd-h ( D , E , A )] + [X [[ 2 ]]]] + ripemd-hhh-const ) BE [asterisk IN LET asterisk BE [C IN LET ripemd-mask1 ( ripemd-rol ( C , %% %1 %4 ) + B ) BE [asterisk IN LET asterisk BE [C IN LET ripemd-rol ( E , %% %1 %0 ) BE [asterisk IN LET asterisk BE [E IN LET ripemd-mask1 ( [[B + ripemd-h ( C , D , E )] + [X [[ %% %1 %0 ]]]] + ripemd-hhh-const ) BE [asterisk IN LET asterisk BE [B IN LET ripemd-mask1 ( ripemd-rol ( B , %% %1 %3 ) + A ) BE [asterisk IN LET asterisk BE [B IN LET ripemd-rol ( D , %% %1 %0 ) BE [asterisk IN LET asterisk BE [D IN LET ripemd-mask1 ( [[A + ripemd-h ( B , C , D )] + [X [[ 0 ]]]] + ripemd-hhh-const ) BE [asterisk IN LET asterisk BE [A IN LET ripemd-mask1 ( ripemd-rol ( A , %% %1 %3 ) + E ) BE [asterisk IN LET asterisk BE [A IN LET ripemd-rol ( C , %% %1 %0 ) BE [asterisk IN LET asterisk BE [C IN LET ripemd-mask1 ( [[E + ripemd-h ( A , B , C )] + [X [[ 4 ]]]] + ripemd-hhh-const ) BE [asterisk IN LET asterisk BE [E IN LET ripemd-mask1 ( ripemd-rol ( E , 7 ) + D ) BE [asterisk IN LET asterisk BE [E IN LET ripemd-rol ( B , %% %1 %0 ) BE [asterisk IN LET asterisk BE [B IN LET ripemd-mask1 ( [[D + ripemd-h ( E , A , B )] + [X [[ %% %1 %3 ]]]] + ripemd-hhh-const ) BE [asterisk IN LET asterisk BE [D IN LET ripemd-mask1 ( ripemd-rol ( D , 5 ) + C ) BE [asterisk IN LET asterisk BE [D IN LET ripemd-rol ( A , %% %1 %0 ) BE [asterisk IN LET asterisk BE [A IN LET ripemd-mask1 ( [[C + ripemd-g ( D , E , A )] + [X [[ 8 ]]]] + ripemd-ggg-const ) BE [asterisk IN LET asterisk BE [C IN LET ripemd-mask1 ( ripemd-rol ( C , %% %1 %5 ) + B ) BE [asterisk IN LET asterisk BE [C IN LET ripemd-rol ( E , %% %1 %0 ) BE [asterisk IN LET asterisk BE [E IN LET ripemd-mask1 ( [[B + ripemd-g ( C , D , E )] + [X [[ 6 ]]]] + ripemd-ggg-const ) BE [asterisk IN LET asterisk BE [B IN LET ripemd-mask1 ( ripemd-rol ( B , 5 ) + A ) BE [asterisk IN LET asterisk BE [B IN LET ripemd-rol ( D , %% %1 %0 ) BE [asterisk IN LET asterisk BE [D IN LET ripemd-mask1 ( [[A + ripemd-g ( B , C , D )] + [X [[ 4 ]]]] + ripemd-ggg-const ) BE [asterisk IN LET asterisk BE [A IN LET ripemd-mask1 ( ripemd-rol ( A , 8 ) + E ) BE [asterisk IN LET asterisk BE [A IN LET ripemd-rol ( C , %% %1 %0 ) BE [asterisk IN LET asterisk BE [C IN LET ripemd-mask1 ( [[E + ripemd-g ( A , B , C )] + [X [[ 1 ]]]] + ripemd-ggg-const ) BE [asterisk IN LET asterisk BE [E IN LET ripemd-mask1 ( ripemd-rol ( E , %% %1 %1 ) + D ) BE [asterisk IN LET asterisk BE [E IN LET ripemd-rol ( B , %% %1 %0 ) BE [asterisk IN LET asterisk BE [B IN LET ripemd-mask1 ( [[D + ripemd-g ( E , A , B )] + [X [[ 3 ]]]] + ripemd-ggg-const ) BE [asterisk IN LET asterisk BE [D IN LET ripemd-mask1 ( ripemd-rol ( D , %% %1 %4 ) + C ) BE [asterisk IN LET asterisk BE [D IN LET ripemd-rol ( A , %% %1 %0 ) BE [asterisk IN LET asterisk BE [A IN LET ripemd-mask1 ( [[C + ripemd-g ( D , E , A )] + [X [[ %% %1 %1 ]]]] + ripemd-ggg-const ) BE [asterisk IN LET asterisk BE [C IN LET ripemd-mask1 ( ripemd-rol ( C , %% %1 %4 ) + B ) BE [asterisk IN LET asterisk BE [C IN LET ripemd-rol ( E , %% %1 %0 ) BE [asterisk IN LET asterisk BE [E IN LET ripemd-mask1 ( [[B + ripemd-g ( C , D , E )] + [X [[ %% %1 %5 ]]]] + ripemd-ggg-const ) BE [asterisk IN LET asterisk BE [B IN LET ripemd-mask1 ( ripemd-rol ( B , 6 ) + A ) BE [asterisk IN LET asterisk BE [B IN LET ripemd-rol ( D , %% %1 %0 ) BE [asterisk IN LET asterisk BE [D IN LET ripemd-mask1 ( [[A + ripemd-g ( B , C , D )] + [X [[ 0 ]]]] + ripemd-ggg-const ) BE [asterisk IN LET asterisk BE [A IN LET ripemd-mask1 ( ripemd-rol ( A , %% %1 %4 ) + E ) BE [asterisk IN LET asterisk BE [A IN LET ripemd-rol ( C , %% %1 %0 ) BE [asterisk IN LET asterisk BE [C IN LET ripemd-mask1 ( [[E + ripemd-g ( A , B , C )] + [X [[ 5 ]]]] + ripemd-ggg-const ) BE [asterisk IN LET asterisk BE [E IN LET ripemd-mask1 ( ripemd-rol ( E , 6 ) + D ) BE [asterisk IN LET asterisk BE [E IN LET ripemd-rol ( B , %% %1 %0 ) BE [asterisk IN LET asterisk BE [B IN LET ripemd-mask1 ( [[D + ripemd-g ( E , A , B )] + [X [[ %% %1 %2 ]]]] + ripemd-ggg-const ) BE [asterisk IN LET asterisk BE [D IN LET ripemd-mask1 ( ripemd-rol ( D , 9 ) + C ) BE [asterisk IN LET asterisk BE [D IN LET ripemd-rol ( A , %% %1 %0 ) BE [asterisk IN LET asterisk BE [A IN LET ripemd-mask1 ( [[C + ripemd-g ( D , E , A )] + [X [[ 2 ]]]] + ripemd-ggg-const ) BE [asterisk IN LET asterisk BE [C IN LET ripemd-mask1 ( ripemd-rol ( C , %% %1 %2 ) + B ) BE [asterisk IN LET asterisk BE [C IN LET ripemd-rol ( E , %% %1 %0 ) BE [asterisk IN LET asterisk BE [E IN LET ripemd-mask1 ( [[B + ripemd-g ( C , D , E )] + [X [[ %% %1 %3 ]]]] + ripemd-ggg-const ) BE [asterisk IN LET asterisk BE [B IN LET ripemd-mask1 ( ripemd-rol ( B , 9 ) + A ) BE [asterisk IN LET asterisk BE [B IN LET ripemd-rol ( D , %% %1 %0 ) BE [asterisk IN LET asterisk BE [D IN LET ripemd-mask1 ( [[A + ripemd-g ( B , C , D )] + [X [[ 9 ]]]] + ripemd-ggg-const ) BE [asterisk IN LET asterisk BE [A IN LET ripemd-mask1 ( ripemd-rol ( A , %% %1 %2 ) + E ) BE [asterisk IN LET asterisk BE [A IN LET ripemd-rol ( C , %% %1 %0 ) BE [asterisk IN LET asterisk BE [C IN LET ripemd-mask1 ( [[E + ripemd-g ( A , B , C )] + [X [[ 7 ]]]] + ripemd-ggg-const ) BE [asterisk IN LET asterisk BE [E IN LET ripemd-mask1 ( ripemd-rol ( E , 5 ) + D ) BE [asterisk IN LET asterisk BE [E IN LET ripemd-rol ( B , %% %1 %0 ) BE [asterisk IN LET asterisk BE [B IN LET ripemd-mask1 ( [[D + ripemd-g ( E , A , B )] + [X [[ %% %1 %0 ]]]] + ripemd-ggg-const ) BE [asterisk IN LET asterisk BE [D IN LET ripemd-mask1 ( ripemd-rol ( D , %% %1 %5 ) + C ) BE [asterisk IN LET asterisk BE [D IN LET ripemd-rol ( A , %% %1 %0 ) BE [asterisk IN LET asterisk BE [A IN LET ripemd-mask1 ( [[C + ripemd-g ( D , E , A )] + [X [[ %% %1 %4 ]]]] + ripemd-ggg-const ) BE [asterisk IN LET asterisk BE [C IN LET ripemd-mask1 ( ripemd-rol ( C , 8 ) + B ) BE [asterisk IN LET asterisk BE [C IN LET ripemd-rol ( E , %% %1 %0 ) BE [asterisk IN LET asterisk BE [E IN LET ripemd-mask1 ( [B + ripemd-f ( C , D , E )] + [X [[ %% %1 %2 ]]] ) BE [asterisk IN LET asterisk BE [B IN LET ripemd-mask1 ( ripemd-rol ( B , 8 ) + A ) BE [asterisk IN LET asterisk BE [B IN LET ripemd-rol ( D , %% %1 %0 ) BE [asterisk IN LET asterisk BE [D IN LET ripemd-mask1 ( [A + ripemd-f ( B , C , D )] + [X [[ %% %1 %5 ]]] ) BE [asterisk IN LET asterisk BE [A IN LET ripemd-mask1 ( ripemd-rol ( A , 5 ) + E ) BE [asterisk IN LET asterisk BE [A IN LET ripemd-rol ( C , %% %1 %0 ) BE [asterisk IN LET asterisk BE [C IN LET ripemd-mask1 ( [E + ripemd-f ( A , B , C )] + [X [[ %% %1 %0 ]]] ) BE [asterisk IN LET asterisk BE [E IN LET ripemd-mask1 ( ripemd-rol ( E , %% %1 %2 ) + D ) BE [asterisk IN LET asterisk BE [E IN LET ripemd-rol ( B , %% %1 %0 ) BE [asterisk IN LET asterisk BE [B IN LET ripemd-mask1 ( [D + ripemd-f ( E , A , B )] + [X [[ 4 ]]] ) BE [asterisk IN LET asterisk BE [D IN LET ripemd-mask1 ( ripemd-rol ( D , 9 ) + C ) BE [asterisk IN LET asterisk BE [D IN LET ripemd-rol ( A , %% %1 %0 ) BE [asterisk IN LET asterisk BE [A IN LET ripemd-mask1 ( [C + ripemd-f ( D , E , A )] + [X [[ 1 ]]] ) BE [asterisk IN LET asterisk BE [C IN LET ripemd-mask1 ( ripemd-rol ( C , %% %1 %2 ) + B ) BE [asterisk IN LET asterisk BE [C IN LET ripemd-rol ( E , %% %1 %0 ) BE [asterisk IN LET asterisk BE [E IN LET ripemd-mask1 ( [B + ripemd-f ( C , D , E )] + [X [[ 5 ]]] ) BE [asterisk IN LET asterisk BE [B IN LET ripemd-mask1 ( ripemd-rol ( B , 5 ) + A ) BE [asterisk IN LET asterisk BE [B IN LET ripemd-rol ( D , %% %1 %0 ) BE [asterisk IN LET asterisk BE [D IN LET ripemd-mask1 ( [A + ripemd-f ( B , C , D )] + [X [[ 8 ]]] ) BE [asterisk IN LET asterisk BE [A IN LET ripemd-mask1 ( ripemd-rol ( A , %% %1 %4 ) + E ) BE [asterisk IN LET asterisk BE [A IN LET ripemd-rol ( C , %% %1 %0 ) BE [asterisk IN LET asterisk BE [C IN LET ripemd-mask1 ( [E + ripemd-f ( A , B , C )] + [X [[ 7 ]]] ) BE [asterisk IN LET asterisk BE [E IN LET ripemd-mask1 ( ripemd-rol ( E , 6 ) + D ) BE [asterisk IN LET asterisk BE [E IN LET ripemd-rol ( B , %% %1 %0 ) BE [asterisk IN LET asterisk BE [B IN LET ripemd-mask1 ( [D + ripemd-f ( E , A , B )] + [X [[ 6 ]]] ) BE [asterisk IN LET asterisk BE [D IN LET ripemd-mask1 ( ripemd-rol ( D , 8 ) + C ) BE [asterisk IN LET asterisk BE [D IN LET ripemd-rol ( A , %% %1 %0 ) BE [asterisk IN LET asterisk BE [A IN LET ripemd-mask1 ( [C + ripemd-f ( D , E , A )] + [X [[ 2 ]]] ) BE [asterisk IN LET asterisk BE [C IN LET ripemd-mask1 ( ripemd-rol ( C , %% %1 %3 ) + B ) BE [asterisk IN LET asterisk BE [C IN LET ripemd-rol ( E , %% %1 %0 ) BE [asterisk IN LET asterisk BE [E IN LET ripemd-mask1 ( [B + ripemd-f ( C , D , E )] + [X [[ %% %1 %3 ]]] ) BE [asterisk IN LET asterisk BE [B IN LET ripemd-mask1 ( ripemd-rol ( B , 6 ) + A ) BE [asterisk IN LET asterisk BE [B IN LET ripemd-rol ( D , %% %1 %0 ) BE [asterisk IN LET asterisk BE [D IN LET ripemd-mask1 ( [A + ripemd-f ( B , C , D )] + [X [[ %% %1 %4 ]]] ) BE [asterisk IN LET asterisk BE [A IN LET ripemd-mask1 ( ripemd-rol ( A , 5 ) + E ) BE [asterisk IN LET asterisk BE [A IN LET ripemd-rol ( C , %% %1 %0 ) BE [asterisk IN LET asterisk BE [C IN LET ripemd-mask1 ( [E + ripemd-f ( A , B , C )] + [X [[ 0 ]]] ) BE [asterisk IN LET asterisk BE [E IN LET ripemd-mask1 ( ripemd-rol ( E , %% %1 %5 ) + D ) BE [asterisk IN LET asterisk BE [E IN LET ripemd-rol ( B , %% %1 %0 ) BE [asterisk IN LET asterisk BE [B IN LET ripemd-mask1 ( [D + ripemd-f ( E , A , B )] + [X [[ 3 ]]] ) BE [asterisk IN LET asterisk BE [D IN LET ripemd-mask1 ( ripemd-rol ( D , %% %1 %3 ) + C ) BE [asterisk IN LET asterisk BE [D IN LET ripemd-rol ( A , %% %1 %0 ) BE [asterisk IN LET asterisk BE [A IN LET ripemd-mask1 ( [C + ripemd-f ( D , E , A )] + [X [[ 9 ]]] ) BE [asterisk IN LET asterisk BE [C IN LET ripemd-mask1 ( ripemd-rol ( C , %% %1 %1 ) + B ) BE [asterisk IN LET asterisk BE [C IN LET ripemd-rol ( E , %% %1 %0 ) BE [asterisk IN LET asterisk BE [E IN LET ripemd-mask1 ( [B + ripemd-f ( C , D , E )] + [X [[ %% %1 %1 ]]] ) BE [asterisk IN LET asterisk BE [B IN LET ripemd-mask1 ( ripemd-rol ( B , %% %1 %1 ) + A ) BE [asterisk IN LET asterisk BE [B IN LET ripemd-rol ( D , %% %1 %0 ) BE [asterisk IN LET asterisk BE [D IN LET Q 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 [a 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 [b 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 [c 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 [d 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 [e 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 ripemd-mask1 ( [b prime + c] + D ) BE [asterisk IN LET asterisk BE [A prime IN LET ripemd-mask1 ( [c prime + d] + E ) BE [asterisk IN LET asterisk BE [B prime IN LET ripemd-mask1 ( [d prime + e] + A ) BE [asterisk IN LET asterisk BE [C prime IN LET ripemd-mask1 ( [e prime + a] + B ) BE [asterisk IN LET asterisk BE [D prime IN LET ripemd-mask1 ( [a prime + b] + C ) BE [asterisk IN LET asterisk BE [E prime IN [A prime :: [B prime :: [C prime :: [D prime :: [E prime :: <<>>]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of ripemd-compress ( lgcvar , lgcvar ) as "0" enddef

ripemd-buffer2array ( " )

Index 493 of page base

lgcdef lgcname of ripemd-buffer2array ( lgcvar ) as "ripemd-buffer2array ( ""! )" enddef

define value of ripemd-buffer2array ( B ) as norm [B is val : ripemd-buffer2array1 ( B , 0 , true )] end define

lgcdef lgccharge of ripemd-buffer2array ( lgcvar ) as "0" enddef

ripemd-buffer2array1 ( " , " , " )

Index 494 of page base

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

define value of ripemd-buffer2array1 ( B , n , X ) as norm [B is val : [n is val : [X is val : if n >= [%% %1 %6] then X :: B else LET ripemd-mask1 ( vt2vector ( list-prefix ( B , 4 ) ) ) BE [asterisk IN LET asterisk BE [c IN LET list-suffix ( B , 4 ) BE [asterisk IN LET asterisk BE [B IN LET X [[ n -> c ]] BE [asterisk IN LET asterisk BE [X IN ripemd-buffer2array1 ( B , n + 1 , X )]]]]]]]]] end define

lgcdef lgccharge of ripemd-buffer2array1 ( lgcvar , lgcvar , lgcvar ) as "0" enddef

ripemd-chunk

Index 495 of page base

lgcdef lgcname of ripemd-chunk as "ripemd-chunk" enddef

define value of ripemd-chunk as norm [%% %6 %4] end define

lgcdef lgccharge of ripemd-chunk as "0" enddef

ripemd-pad

Index 496 of page base

lgcdef lgcname of ripemd-pad as "ripemd-pad" enddef

define value of ripemd-pad as norm repeat ( ripemd-chunk , NULL ) end define

lgcdef lgccharge of ripemd-pad as "0" enddef

ripemd ( " )

Index 497 of page base

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

optimized define value of ripemd ( B ) as norm [B is val : LET vt2vector* ( B ) BE [asterisk IN LET asterisk BE [B IN LET length ( B ) BE [asterisk IN LET asterisk BE [l IN LET ripemd1 ( l , l , ripemd-init , B ) BE [asterisk IN LET asterisk BE [Q IN ripemd2 ( Q )]]]]]]] end define

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

ripemds ( " )

Index 498 of page base

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

define value of ripemds ( s ) as norm [s is val : vt2vector ( lgc-string2mixed ( ripemd ( s ) ) )] end define

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

ripemd1 ( " , " , " , " )

Index 499 of page base

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

define value of ripemd1 ( L , l , Q , B ) as norm [L is val : [l is val : [Q is val : [B is val : if l < ripemd-chunk then ripemd-finish ( L , l , Q , B ) else LET ripemd-buffer2array ( B ) 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 [B IN LET ripemd-compress ( Q , X ) BE [asterisk IN LET asterisk BE [Q IN ripemd1 ( l , l - ripemd-chunk , Q , B )]]]]]]]]]]]]]] end define

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

ripemd-finish ( " , " , " , " )

Index 500 of page base

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

define value of ripemd-finish ( L , l , Q , B ) as norm [L is val : [l is val : [Q is val : [B is val : LET append ( B , V128 :: ripemd-pad ) BE [asterisk IN LET asterisk BE [B IN LET ripemd-buffer2array ( B ) 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 [B IN if l < [%% %5 %6] then ripemd-compress ( Q , ripemd-length ( X , L ) ) else LET ripemd-compress ( Q , X ) BE [asterisk IN LET asterisk BE [Q IN LET ripemd-buffer2array ( ripemd-pad ) 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 [B IN ripemd-compress ( Q , ripemd-length ( X , L ) )]]]]]]]]]]]]]]]]]]]]]]]] end define

lgcdef lgccharge of ripemd-finish ( lgcvar , lgcvar , lgcvar , lgcvar ) as "0" enddef

ripemd-length ( " , " )

Index 501 of page base

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

define value of ripemd-length ( X , L ) as norm [X is val : [L is val : LET X [[ %% %1 %4 -> ripemd-mask1 ( ash ( L , 3 ) ) ]] BE [asterisk IN LET asterisk BE [X IN [X [[ %% %1 %5 -> ripemd-mask1 ( ash ( L , -[%% %2 %9] ) ) ]]]]]]] end define

lgcdef lgccharge of ripemd-length ( lgcvar , lgcvar ) as "0" enddef

ripemd2 ( " )

Index 502 of page base

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

define value of ripemd2 ( Q ) as norm [Q is val : if Q then true else LET Q 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 [C IN LET asterisk prime head BE [asterisk IN LET asterisk prime tail BE [asterisk prime IN LET asterisk BE [Q IN LET vt2vector* ( C + ash ( 1 , %% %3 %2 ) ) BE [asterisk IN LET asterisk BE [C IN append ( C , ripemd2 ( Q ) )]]]]]]]]]]] end define

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

+"

Index 503 of page base

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

Define tex show of +x as " {}^{+}\! ",x end define

optimized define value of +x as + x end define

lgcdef lgccharge of +lgcvar as "2" enddef

-"

Index 504 of page base

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

Define tex show of -x as " {}^{-}\! ",x end define

optimized define value of -x as - x end define

lgcdef lgccharge of -lgcvar as "2" enddef

0"

Index 505 of page base

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

define macro of 0x as \ x . numeral ( x ) end define

lgcdef lgccharge of 0lgcvar as "2" enddef

1"

Index 506 of page base

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

define macro of 1x as \ x . numeral ( x ) end define

lgcdef lgccharge of 1lgcvar as "2" enddef

2"

Index 507 of page base

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

define macro of 2x as \ x . numeral ( x ) end define

lgcdef lgccharge of 2lgcvar as "2" enddef

3"

Index 508 of page base

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

define macro of 3x as \ x . numeral ( x ) end define

lgcdef lgccharge of 3lgcvar as "2" enddef

4"

Index 509 of page base

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

define macro of 4x as \ x . numeral ( x ) end define

lgcdef lgccharge of 4lgcvar as "2" enddef

5"

Index 510 of page base

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

define macro of 5x as \ x . numeral ( x ) end define

lgcdef lgccharge of 5lgcvar as "2" enddef

6"

Index 511 of page base

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

define macro of 6x as \ x . numeral ( x ) end define

lgcdef lgccharge of 6lgcvar as "2" enddef

7"

Index 512 of page base

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

define macro of 7x as \ x . numeral ( x ) end define

lgcdef lgccharge of 7lgcvar as "2" enddef

8"

Index 513 of page base

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

define macro of 8x as \ x . numeral ( x ) end define

lgcdef lgccharge of 8lgcvar as "2" enddef

9"

Index 514 of page base

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

define macro of 9x as \ x . numeral ( x ) end define

lgcdef lgccharge of 9lgcvar as "2" enddef

tight newline "

Index 515 of page base

Define tex use of tight newline x as " \newline "[ x ]"". end define

lgcdef lgcname of tight newline lgcvar as "tight newline ""!" enddef

define macro of tight newline x as \ x . expand ( quote macro define tight newline x as x end define end quote , x ) end define

lgcdef lgccharge of tight newline lgcvar as "2" enddef

!"

Index 516 of page base

Define tex use of !x as "".[ texshow x end texshow ]"". end define

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

optimized define value of !x as x end define

lgcdef lgccharge of !lgcvar as "2" enddef

" factorial

Index 517 of page base

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

Define tex show of x factorial as "".[ x ]" !" end define

Define "value" of x factorial as if x = 0 then 1 else [x * [[x - 1] factorial]] end define

lgcdef lgccharge of lgcvar factorial as "4" enddef

" _ { " }

Index 518 of page base

Define tex use of x _ { y } as "".[ x ][" _{"[ y ]" }"] end define

lgcdef lgcname of lgcvar _ { lgcvar } as ""-""! _ { ""! }" enddef

lgcdef lgccharge of lgcvar _ { lgcvar } as "4" enddef

" prime

Index 519 of page base

Define tex use of x prime as "".[ x ]" {}' " end define

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

lgcdef lgccharge of lgcvar prime as "4" enddef

"_"

Index 520 of page base

Define tex use of x_y as "".[ x ][" _{"[ y ]" }"] end define

lgcdef lgcname of lgcvar_lgcvar as ""-""!_""!" enddef

lgcdef lgccharge of lgcvar_lgcvar as "4" enddef

" %0

Index 521 of page base

lgcdef lgcname of lgcvar %0 as ""-""! %0" enddef

Define tex show of x %0 as "".[ x ]"0" end define

optimized define value of x %0 as norm [x is val : [x * Base]] end define

lgcdef lgccharge of lgcvar %0 as "4" enddef

" %1

Index 522 of page base

lgcdef lgcname of lgcvar %1 as ""-""! %1" enddef

Define tex show of x %1 as "".[ x ]"1" end define

optimized define value of x %1 as norm [x is val : [[x * Base] + PlusTag One]] end define

lgcdef lgccharge of lgcvar %1 as "4" enddef

" %2

Index 523 of page base

lgcdef lgcname of lgcvar %2 as ""-""! %2" enddef

Define tex show of x %2 as "".[ x ]"2" end define

optimized define value of x %2 as norm [x is val : [[x * Base] + PlusTag Two]] end define

lgcdef lgccharge of lgcvar %2 as "4" enddef

" %3

Index 524 of page base

lgcdef lgcname of lgcvar %3 as ""-""! %3" enddef

Define tex show of x %3 as "".[ x ]"3" end define

optimized define value of x %3 as norm [x is val : [[x * Base] + PlusTag Three]] end define

lgcdef lgccharge of lgcvar %3 as "4" enddef

" %4

Index 525 of page base

lgcdef lgcname of lgcvar %4 as ""-""! %4" enddef

Define tex show of x %4 as "".[ x ]"4" end define

optimized define value of x %4 as norm [x is val : [[x * Base] + PlusTag Four]] end define

lgcdef lgccharge of lgcvar %4 as "4" enddef

" %5

Index 526 of page base

lgcdef lgcname of lgcvar %5 as ""-""! %5" enddef

Define tex show of x %5 as "".[ x ]"5" end define

optimized define value of x %5 as norm [x is val : [[x * Base] + PlusTag Five]] end define

lgcdef lgccharge of lgcvar %5 as "4" enddef

" %6

Index 527 of page base

lgcdef lgcname of lgcvar %6 as ""-""! %6" enddef

Define tex show of x %6 as "".[ x ]"6" end define

optimized define value of x %6 as norm [x is val : [[x * Base] + PlusTag Six]] end define

lgcdef lgccharge of lgcvar %6 as "4" enddef

" %7

Index 528 of page base

lgcdef lgcname of lgcvar %7 as ""-""! %7" enddef

Define tex show of x %7 as "".[ x ]"7" end define

optimized define value of x %7 as norm [x is val : [[x * Base] + PlusTag Seven]] end define

lgcdef lgccharge of lgcvar %7 as "4" enddef

" %8

Index 529 of page base

lgcdef lgcname of lgcvar %8 as ""-""! %8" enddef

Define tex show of x %8 as "".[ x ]"8" end define

optimized define value of x %8 as norm [x is val : [[x * Base] + PlusTag Eight]] end define

lgcdef lgccharge of lgcvar %8 as "4" enddef

" %9

Index 530 of page base

lgcdef lgcname of lgcvar %9 as ""-""! %9" enddef

Define tex show of x %9 as "".[ x ]"9" end define

optimized define value of x %9 as norm [x is val : [[x * Base] + PlusTag Nine]] end define

lgcdef lgccharge of lgcvar %9 as "4" enddef

" head

Index 531 of page base

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

Define tex show of x head as "".[ x ]" {}^h" end define

optimized define value of x head as norm [x is val : if x atom then x norm else [x norm Tail Head]] end define

lgcdef lgccharge of lgcvar head as "4" enddef

" tail

Index 532 of page base

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

Define tex show of x tail as "".[ x ]" {}^t" end define

optimized define value of x tail as norm [x is val : if x atom then x norm else [x norm Tail Tail]] end define

lgcdef lgccharge of lgcvar tail as "4" enddef

" raise

Index 533 of page base

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

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

optimized define value of x raise as x is val : [ExTag Pair [x norm]] end define

lgcdef lgccharge of lgcvar raise as "4" enddef

" catch

Index 534 of page base

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

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

optimized define value of x catch as Catch ( x norm ) end define

lgcdef lgccharge of lgcvar catch as "4" enddef

" catching maptag

Index 535 of page base

lgcdef lgcname of lgcvar catching maptag as ""-""! catching maptag" enddef

Define tex show of x catching maptag as "".[ x ]" {}^{M^{\circ}}" end define

optimized define value of x catching maptag as map ( x norm ) end define

lgcdef lgccharge of lgcvar catching maptag as "4" enddef

" maptag

Index 536 of page base

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

Define tex show of x maptag as "".[ x ]" {}^M" end define

optimized define value of x maptag as norm [x is val : [x catching maptag]] end define

lgcdef lgccharge of lgcvar maptag as "4" enddef

" untag

Index 537 of page base

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

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

optimized define value of x untag as norm [x is val : [x is map : [x Tail norm]]] end define

lgcdef lgccharge of lgcvar untag as "4" enddef

" boolp

Index 538 of page base

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

Define tex show of x boolp as "".[ x ]" \in \mathbf{B}" end define

optimized define value of x boolp as x is val : [x BoolP] end define

lgcdef lgccharge of lgcvar boolp as "4" enddef

" truep

Index 539 of page base

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

Define tex show of x truep as "".[ x ]" \in \mathbf{T}" end define

define value of x truep as x is val : [x boolp .and. notnot x] end define

lgcdef lgccharge of lgcvar truep as "4" enddef

" falsep

Index 540 of page base

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

Define tex show of x falsep as "".[ x ]" \in \mathbf{F}" end define

define value of x falsep as x is val : [x boolp .and. .not. x] end define

lgcdef lgccharge of lgcvar falsep as "4" enddef

" intp

Index 541 of page base

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

Define tex show of x intp as "".[ x ]" \in \mathbf{Z}" end define

optimized define value of x intp as norm [x is val : [x IntP]] end define

lgcdef lgccharge of lgcvar intp as "4" enddef

" pairp

Index 542 of page base

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

Define tex show of x pairp as "".[ x ]" \in \mathbf{P}" end define

optimized define value of x pairp as norm [x is val : [x PairP]] end define

lgcdef lgccharge of lgcvar pairp as "4" enddef

" atom

Index 543 of page base

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

Define tex show of x atom as "".[ x ]" \in \mathbf{A}" end define

define value of a atom as norm [a is val : norm [a is val : .not. [a pairp]]] end define

lgcdef lgccharge of lgcvar atom as "4" enddef

" mapp

Index 544 of page base

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

Define tex show of x mapp as "".[ x ]" \in \mathbf{M}" end define

optimized define value of x mapp as norm [x is val : [x MapP]] end define

lgcdef lgccharge of lgcvar mapp as "4" enddef

" objectp

Index 545 of page base

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

Define tex show of x objectp as "".[ x ]" \in \mathbf{O}" end define

optimized define value of x objectp as norm [x is val : [x ObjectP]] end define

lgcdef lgccharge of lgcvar objectp as "4" enddef

" root

Index 546 of page base

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

Define tex show of x root as "".[ x ]" {}^R" end define

optimized define value of x root as norm [x is val : [x is map : [x Tail TheBool]]] end define

lgcdef lgccharge of lgcvar root as "4" enddef

" Head

Index 547 of page base

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

define value of x Head as x ' true end define

lgcdef lgccharge of lgcvar Head as "4" enddef

" Tail

Index 548 of page base

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

define value of x Tail as x ' false end define

lgcdef lgccharge of lgcvar Tail as "4" enddef

" TheBool

Index 549 of page base

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

define value of x TheBool as If x then true else false end define

lgcdef lgccharge of lgcvar TheBool as "4" enddef

" TheNat

Index 550 of page base

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

define value of x TheNat as If x then Zero else [x Head NatPair [x Tail TheNat]] end define

lgcdef lgccharge of lgcvar TheNat as "4" enddef

" norm

Index 551 of page base

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

Define tex show of x norm as "".[ x ]" {}^N" end define

optimized define value of x norm as If x BoolP then x TheBool else If x IntP then int ( x Tail ) else If x PairP then x Tail Head :: [x Tail Tail] else If x ExP then x Tail raise else If x MapP then map ( x Tail ) else [x Tag Pair [x Tail norm]] end define

lgcdef lgccharge of lgcvar norm as "4" enddef

" Tag

Index 552 of page base

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

define value of x Tag as x Head Head TheNat Pair [x Head Tail TheNat] end define

lgcdef lgccharge of lgcvar Tag as "4" enddef

" BoolP

Index 553 of page base

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

define value of x BoolP as x Tag Equal BoolTag end define

lgcdef lgccharge of lgcvar BoolP as "4" enddef

" IntP

Index 554 of page base

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

define value of x IntP as x Tag Equal IntTag end define

lgcdef lgccharge of lgcvar IntP as "4" enddef

" PairP

Index 555 of page base

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

define value of x PairP as x Tag Equal PairTag end define

lgcdef lgccharge of lgcvar PairP as "4" enddef

" ExP

Index 556 of page base

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

define value of x ExP as x Tag Equal ExTag end define

lgcdef lgccharge of lgcvar ExP as "4" enddef

" MapP

Index 557 of page base

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

define value of x MapP as x Tag Equal MapTag end define

lgcdef lgccharge of lgcvar MapP as "4" enddef

" ObjectP

Index 558 of page base

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

define value of x ObjectP as Not [[[[x BoolP Or [x IntP]] Or [x PairP]] Or [x ExP]] Or [x MapP]] end define

lgcdef lgccharge of lgcvar ObjectP as "4" enddef

" Sign

Index 559 of page base

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

define value of x Sign as x Tail Head end define

lgcdef lgccharge of lgcvar Sign as "4" enddef

" Mag

Index 560 of page base

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

define value of x Mag as x Tail Tail end define

lgcdef lgccharge of lgcvar Mag as "4" enddef

" zeroth

Index 561 of page base

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

Define tex show of x zeroth as "".[ x ]" {}^0" end define

define value of x zeroth as norm [x is val : [x head]] end define

lgcdef lgccharge of lgcvar zeroth as "4" enddef

" first

Index 562 of page base

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

Define tex show of x first as "".[ x ]" {}^1" end define

define value of x first as norm [x is val : [x tail zeroth]] end define

lgcdef lgccharge of lgcvar first as "4" enddef

" second

Index 563 of page base

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

Define tex show of x second as "".[ x ]" {}^2" end define

define value of x second as norm [x is val : [x tail first]] end define

lgcdef lgccharge of lgcvar second as "4" enddef

" third

Index 564 of page base

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

Define tex show of x third as "".[ x ]" {}^3" end define

define value of x third as norm [x is val : [x tail second]] end define

lgcdef lgccharge of lgcvar third as "4" enddef

" fourth

Index 565 of page base

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

Define tex show of x fourth as "".[ x ]" {}^4" end define

define value of x fourth as norm [x is val : [x tail third]] end define

lgcdef lgccharge of lgcvar fourth as "4" enddef

" fifth

Index 566 of page base

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

Define tex show of x fifth as "".[ x ]" {}^5" end define

define value of x fifth as norm [x is val : [x tail fourth]] end define

lgcdef lgccharge of lgcvar fifth as "4" enddef

" sixth

Index 567 of page base

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

Define tex show of x sixth as "".[ x ]" {}^6" end define

define value of x sixth as norm [x is val : [x tail fifth]] end define

lgcdef lgccharge of lgcvar sixth as "4" enddef

" seventh

Index 568 of page base

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

Define tex show of x seventh as "".[ x ]" {}^7" end define

define value of x seventh as norm [x is val : [x tail sixth]] end define

lgcdef lgccharge of lgcvar seventh as "4" enddef

" eighth

Index 569 of page base

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

Define tex show of x eighth as "".[ x ]" {}^8" end define

define value of x eighth as norm [x is val : [x tail seventh]] end define

lgcdef lgccharge of lgcvar eighth as "4" enddef

" ninth

Index 570 of page base

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

Define tex show of x ninth as "".[ x ]" {}^9" end define

define value of x ninth as norm [x is val : [x tail eighth]] end define

lgcdef lgccharge of lgcvar ninth as "4" enddef

" ref

Index 571 of page base

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

Define tex show of x ref as "".[ x ]" {}^r" end define

define value of x ref as norm [x is val : [x head head]] end define

lgcdef lgccharge of lgcvar ref as "4" enddef

" idx

Index 572 of page base

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

Define tex show of x idx as "".[ x ]" {}^i" end define

define value of x idx as norm [x is val : [x head tail head]] end define

lgcdef lgccharge of lgcvar idx as "4" enddef

" debug

Index 573 of page base

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

Define tex show of x debug as "".[ x ]" {}^d" end define

define value of x debug as norm [x is val : [x head tail tail]] end define

lgcdef lgccharge of lgcvar debug as "4" enddef

" [[ " ]]

Index 574 of page base

lgcdef lgcname of lgcvar [[ lgcvar ]] as ""-""! [[ ""! ]]" enddef

Define tex show of a [[ i ]] as "".[ a ][" \linebreak[0][ "[ i ]" ]"] end define

define value of a [[ i ]] as norm [a is val : [i is val : [i is int : array1 ( a , i , 0 )]]] end define

lgcdef lgccharge of lgcvar [[ lgcvar ]] as "4" enddef

" [[ " -> " ]]

Index 575 of page base

lgcdef lgcname of lgcvar [[ lgcvar -> lgcvar ]] as ""-""! [[ ""! -> ""! ]]" enddef

Define tex show of a [[ i -> v ]] as "".[ a ][" \linebreak[0][ "[ i ][" {\rightarrow} "[ v ]" ]"]] end define

define value of a [[ i -> v ]] as norm [a is val : [i is val : [v is val : [i is int : array2 ( a , i , v , 0 )]]]] end define

lgcdef lgccharge of lgcvar [[ lgcvar -> lgcvar ]] as "4" enddef

" [[ " => " ]]

Index 576 of page base

lgcdef lgcname of lgcvar [[ lgcvar => lgcvar ]] as ""-""! [[ ""! => ""! ]]" enddef

Define tex show of a [[ i => v ]] as "".[ a ][" \linebreak[0][ "[ i ][" {\Rightarrow} "[ v ]" ]"]] end define

define value of a [[ i => v ]] as norm [a is val : [i is val : [v is val : if i atom then v else [a [[ i head -> a [[ i head ]] [[ i tail => v ]] ]]]]]] end define

lgcdef lgccharge of lgcvar [[ lgcvar => lgcvar ]] as "4" enddef

" tight endline

Index 577 of page base

Define tex use of x tight endline as "".[ x ]" \newline " end define

lgcdef lgcname of lgcvar tight endline as ""-""! tight endline" enddef

define macro of x tight endline as \ x . expand ( quote macro define x tight endline as x end define end quote , x ) end define

lgcdef lgccharge of lgcvar tight endline as "4" enddef

" unquote

Index 578 of page base

Define tex use of x unquote as " \underline{ "[ x ]" } " end define

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

lgcdef lgccharge of lgcvar unquote as "4" enddef

" last

Index 579 of page base

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

define value of x last as norm [x is val : if x tail then x head else [x tail last]] end define

lgcdef lgccharge of lgcvar last as "4" enddef

" ' "

Index 580 of page base

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

Define tex show of x ' y as "".[ x ][" \mathbin {\mbox {'}}"[ y ]"".] end define

Proclamed meaning: "apply"

lgcdef lgccharge of lgcvar ' lgcvar as "6" enddef

" apply "

Index 581 of page base

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

Define tex show of x apply y as "".[ x ][" \mathbin {\mbox {''}}"[ y ]"".] end define

optimized define value of x apply y as norm [x is val : [y is val : [x is map : [y is map : map ( x Tail ' [y Tail] )]]]] end define

lgcdef lgccharge of lgcvar apply lgcvar as "6" enddef

- "

Index 582 of page base

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

Define tex show of - x as " {-} "[ x ]"". end define

optimized define value of - x as norm [x is val : minus1 ( x norm )] end define

lgcdef lgccharge of - lgcvar as "8" enddef

+ "

Index 583 of page base

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

Define tex show of + x as " {+} "[ x ]"". end define

optimized define value of + x as norm [x is val : [x is int : x]] end define

lgcdef lgccharge of + lgcvar as "8" enddef

" Times "

Index 584 of page base

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

define value of x Times y as If x then Zero else [[If x Head then Zero else y] Plus [true Pair [x Tail Times y]]] end define

lgcdef lgccharge of lgcvar Times lgcvar as "10" enddef

" * "

Index 585 of page base

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

Define tex show of x * y as "".[ x ][" \cdot "[ y ]"".] end define

optimized define value of x * y as norm [x is val : [y is val : times1 ( x norm , y norm )]] end define

lgcdef lgccharge of lgcvar * lgcvar as "10" enddef

" Plus "

Index 586 of page base

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

define value of x Plus y as Plus ( x , y , true ) end define

lgcdef lgccharge of lgcvar Plus lgcvar as "12" enddef

" Minus "

Index 587 of page base

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

define value of x Minus y as Minus ( x , y , true ) end define

lgcdef lgccharge of lgcvar Minus lgcvar as "12" enddef

" + "

Index 588 of page base

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

Define tex show of x + y as "".[ x ][" + "[ y ]"".] end define

optimized define value of x + y as norm [x is val : [y is val : plus1 ( x norm , y norm )]] end define

lgcdef lgccharge of lgcvar + lgcvar as "12" enddef

" - "

Index 589 of page base

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

Define tex show of x - y as "".[ x ][" - "[ y ]"".] end define

optimized define value of x - y as norm [x is val : [y is val : [x + - y]]] end define

lgcdef lgccharge of lgcvar - lgcvar as "12" enddef

PlusTag "

Index 590 of page base

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

define value of PlusTag x as TheInt ( true , x ) end define

lgcdef lgccharge of PlusTag lgcvar as "14" enddef

MinusTag "

Index 591 of page base

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

define value of MinusTag x as TheInt ( false , x ) end define

lgcdef lgccharge of MinusTag lgcvar as "14" enddef

" div "

Index 592 of page base

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

optimized define value of x div y as floor ( x , y ) head end define

lgcdef lgccharge of lgcvar div lgcvar as "16" enddef

" mod "

Index 593 of page base

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

optimized define value of x mod y as floor ( x , y ) tail end define

lgcdef lgccharge of lgcvar mod lgcvar as "16" enddef

" LazyPair "

Index 594 of page base

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

define value of x LazyPair y as \ z . If z then x else y end define

lgcdef lgccharge of lgcvar LazyPair lgcvar as "17" enddef

" Pair "

Index 595 of page base

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

define value of x Pair y as x Guard [y Guard [x LazyPair y]] end define

lgcdef lgccharge of lgcvar Pair lgcvar as "17" enddef

" NatPair "

Index 596 of page base

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

define value of x NatPair y as If x And y then Zero else [x TheBool Pair y] end define

lgcdef lgccharge of lgcvar NatPair lgcvar as "17" enddef

" :: "

Index 597 of page base

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

Define tex show of x :: y as "".[ x ][" \mathop{:\,:} "[ y ]"".] end define

optimized define value of x :: y as x is val : [y is val : [PairTag Pair [x norm Pair [y norm]]]] end define

lgcdef lgccharge of lgcvar :: lgcvar as "17" enddef

define destructure of u :: v as [if asterisk atom then asterisk else [asterisk head]] :: [[if asterisk atom then asterisk else [asterisk tail]] :: true] end define

" ,, "

Index 598 of page base

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

Define tex show of x ,, y as "".[ x ][" , "[ y ]"".] end define

lgcdef lgccharge of lgcvar ,, lgcvar as "19" enddef

" = "

Index 599 of page base

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

Define tex show of x = y as "".[ x ][" = "[ y ]"".] end define

optimized define value of x = y as norm [x is val : [y is val : equal1 ( x norm , y norm )]] end define

lgcdef lgccharge of lgcvar = lgcvar as "20" enddef

" != "

Index 600 of page base

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

Define tex show of x != y as "".[ x ][" \neq "[ y ]"".] end define

define value of x != y as norm [x is val : [y is val : .not. [x = y]]] end define

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

" Equal "

Index 601 of page base

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

define value of x Equal y as If x then If y then true else false else If y then false else [[x Head Equal [y Head]] And [x Tail Equal [y Tail]]] end define

lgcdef lgccharge of lgcvar Equal lgcvar as "20" enddef

" LT "

Index 602 of page base

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

define value of x LT y as Compare ( y , x , false ) end define

lgcdef lgccharge of lgcvar LT lgcvar as "20" enddef

" < "

Index 603 of page base

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

Define tex show of x < y as "".[ x ][" < "[ y ]"".] end define

optimized define value of x < y as norm [x is val : [y is val : [x is int : [y is int : lt1 ( x norm , y norm )]]]] end define

lgcdef lgccharge of lgcvar < lgcvar as "20" enddef

" <= "

Index 604 of page base

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

Define tex show of x <= y as "".[ x ][" \le "[ y ]"".] end define

optimized define value of x <= y as norm [x is val : [y is val : [x is int : [y is int : .not. [x > y]]]]] end define

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

" > "

Index 605 of page base

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

Define tex show of x > y as "".[ x ][" > "[ y ]"".] end define

optimized define value of x > y as norm [x is val : [y is val : [x is int : [y is int : [y < x]]]]] end define

lgcdef lgccharge of lgcvar > lgcvar as "20" enddef

" >= "

Index 606 of page base

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

Define tex show of x >= y as "".[ x ][" \ge "[ y ]"".] end define

optimized define value of x >= y as norm [x is val : [y is val : [x is int : [y is int : .not. [x < y]]]]] end define

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

" r= "

Index 607 of page base

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

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

define value of x r= y as norm [x is val : [y is val : [[x ref = [y ref]] .and. [x idx = [y idx]]]]] end define

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

" t= "

Index 608 of page base

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

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

define value of x t= y as norm [x is val : [y is val : [[[x ref = [y ref]] .and. [x idx = [y idx]]] .and. [x tail t=* [y tail]]]]] end define

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

" t=* "

Index 609 of page base

lgcdef lgcname of lgcvar t=* lgcvar as ""-""! t=* ""!" enddef

Define tex show of x t=* y as "".[ x ][" \stackrel{t^*}{=} "[ y ]"".] end define

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

lgcdef lgccharge of lgcvar t=* lgcvar as "20" enddef

Not "

Index 610 of page base

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

define value of Not x as If x then false else true end define

lgcdef lgccharge of Not lgcvar as "22" enddef

.not. "

Index 611 of page base

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

Define tex show of .not. x as " {\bf not} \ \linebreak [0]"[ x ]"". end define

optimized define value of .not. x as norm [x is val : if x then false else true] end define

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

notnot "

Index 612 of page base

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

optimized define value of notnot x as norm [x is val : if x then true else false] end define

lgcdef lgccharge of notnot lgcvar as "22" enddef

" And "

Index 613 of page base

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

define value of x And y as x Select If y then true else false else If y then false else false end select end define

lgcdef lgccharge of lgcvar And lgcvar as "24" enddef

" .and. "

Index 614 of page base

lgcdef lgcname of lgcvar .and. lgcvar as ""-""! .and. ""!" enddef

Define tex show of x .and. y as "".[ x ][" \ {\bf and} \ \linebreak [0]"[ y ]"".] end define

optimized define value of x .and. y as If x norm then y norm else [x norm] end define

lgcdef lgccharge of lgcvar .and. lgcvar as "24" enddef

" .then. "

Index 615 of page base

lgcdef lgcname of lgcvar .then. lgcvar as ""-""! .then. ""!" enddef

optimized define value of x .then. y as If x norm ExP then x else y end define

lgcdef lgccharge of lgcvar .then. lgcvar as "24" enddef

" .prog1. "

Index 616 of page base

lgcdef lgcname of lgcvar .prog1. lgcvar as ""-""! .prog1. ""!" enddef

Define tex show of x .prog1. y as "".[ x ][" \ {\bf prog1} \ \linebreak [0]"[ y ]"".] end define

define value of x .prog1. y as norm [x is val : [y is val : x]] end define

lgcdef lgccharge of lgcvar .prog1. lgcvar as "24" enddef

" &c "

Index 617 of page base

lgcdef lgcname of lgcvar &c lgcvar as ""-""! &c ""!" enddef

Define tex show of x &c y as "".[ x ][" \wedge_c "[ y ]"".] end define

define value of x &c y as \ c . [[x ' c] .and. [y ' c]] end define

lgcdef lgccharge of lgcvar &c lgcvar as "24" enddef

" Or "

Index 618 of page base

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

define value of x Or y as x Select If y then true else true else If y then true else false end select end define

lgcdef lgccharge of lgcvar Or lgcvar as "26" enddef

" .or. "

Index 619 of page base

lgcdef lgcname of lgcvar .or. lgcvar as ""-""! .or. ""!" enddef

Define tex show of x .or. y as "".[ x ][" \ {\bf or} \ \linebreak [0]"[ y ]"".] end define

optimized define value of x .or. y as if x norm then true else [y norm] end define

lgcdef lgccharge of lgcvar .or. lgcvar as "26" enddef

" Iff "

Index 620 of page base

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

define value of x Iff y as x Select If y then true else false else If y then false else true end select end define

lgcdef lgccharge of lgcvar Iff lgcvar as "29" enddef

" Select " else " end select

Index 621 of page base

lgcdef lgcname of lgcvar Select lgcvar else lgcvar end select as ""-""! Select ""! else ""! end select" enddef

Define tex show of x Select y else z end select as "".[ x ][" \left\langle\protect \begin {array}{l}"[ y ][" \\"[ z ]" \protect \end {array}\right."]] end define

Proclamed meaning: "if"

lgcdef lgccharge of lgcvar Select lgcvar else lgcvar end select as "30" enddef

" IN "

Index 622 of page base

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

Define tex show of x IN y as "".[ x ][" \ \mathbf{in}\ \linebreak [0] "[ y ]"".] end define

Proclamed meaning: "lambda"

lgcdef lgccharge of lgcvar IN lgcvar as "30" enddef

\ " . "

Index 623 of page base

lgcdef lgcname of \ lgcvar . lgcvar as "\ ""! . ""!" enddef

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

Proclamed meaning: "lambda"

lgcdef lgccharge of \ lgcvar . lgcvar as "32" enddef

If " then " else "

Index 624 of page base

lgcdef lgcname of If lgcvar then lgcvar else lgcvar as "If ""! then ""! else ""!" enddef

Define tex show of If x then y else z as " {\bf If} \ \linebreak [0]"[ x ][" \ {\bf then} \ \linebreak [0]"[ y ][" \ {\bf else} \ \linebreak [0]"[ z ]"".]] end define

Proclamed meaning: "if"

lgcdef lgccharge of If lgcvar then lgcvar else lgcvar as "32" enddef

if " then " else "

Index 625 of page base

lgcdef lgcname of if lgcvar then lgcvar else lgcvar as "if ""! then ""! else ""!" enddef

Define tex show of if x then y else z as " {\bf if} \ \linebreak [0]"[ x ][" \ {\bf then} \ \linebreak [0]"[ y ][" \ {\bf else} \ \linebreak [0]"[ z ]"".]] end define

optimized define value of if x then y else z as x is val : If norm x then y else z end define

lgcdef lgccharge of if lgcvar then lgcvar else lgcvar as "32" enddef

newline "

Index 626 of page base

Define tex use of newline x as " \newline "[ x ]"". end define

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

optimized define value of newline x as x end define

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

lgcdef lgccharge of newline lgcvar as "32" enddef

LET " BE "

Index 627 of page base

lgcdef lgcname of LET lgcvar BE lgcvar as "LET ""! BE ""!" enddef

Define tex show of LET x BE y as " {\bf let} \ \linebreak [0]"[ x ][" \ {\bf be} \ \linebreak [0]"[ y ]"".] end define

optimized define value of LET x BE y as x is val : [y ' x] end define

lgcdef lgccharge of LET lgcvar BE lgcvar as "32" enddef

let " := " in "

Index 628 of page base

lgcdef lgcname of let lgcvar := lgcvar in lgcvar as "let ""! := ""! in ""!" enddef

Define tex show of let x := y in z as " {\bf let} \ \linebreak [0]"[ x ][" \mathrel{\ddot{=}} "[ y ][" \ {\bf in} \ \linebreak [0]"[ z ]"".]] end define

define macro of let u := v in w as \ x . macrolet1 ( x ) end define

lgcdef lgccharge of let lgcvar := lgcvar in lgcvar as "32" enddef

let " = " in "

Index 629 of page base

lgcdef lgcname of let lgcvar = lgcvar in lgcvar as "let ""! = ""! in ""!" enddef

Define tex show of let x = y in z as " {\bf let} \ \linebreak [0]"[ x ][" = "[ y ][" \ {\bf in} \ \linebreak [0]"[ z ]"".]] end define

define macro of let u = v in w as \ x . let1 ( x ) end define

lgcdef lgccharge of let lgcvar = lgcvar in lgcvar as "32" enddef

ripemd-ff ( " , " , " , " , " , " , " ); "

Index 630 of page base

lgcdef lgcname of ripemd-ff ( lgcvar , lgcvar , lgcvar , lgcvar , lgcvar , lgcvar , lgcvar ); lgcvar as "ripemd-ff ( ""! , ""! , ""! , ""! , ""! , ""! , ""! ); ""!" enddef

define macro of ripemd-ff ( a , b , c , d , e , x , s ); z as \ x . expand ( quote macro define ripemd-ff ( a , b , c , d , e , x , s ); z as newline let a = ripemd-mask1 ( [a + ripemd-f ( b , c , d )] + x ) in newline let a = ripemd-mask1 ( ripemd-rol ( a , s ) + e ) in newline let c = ripemd-rol ( c , 10 ) in z end define end quote , x ) end define

lgcdef lgccharge of ripemd-ff ( lgcvar , lgcvar , lgcvar , lgcvar , lgcvar , lgcvar , lgcvar ); lgcvar as "32" enddef

ripemd-gg ( " , " , " , " , " , " , " ); "

Index 631 of page base

lgcdef lgcname of ripemd-gg ( lgcvar , lgcvar , lgcvar , lgcvar , lgcvar , lgcvar , lgcvar ); lgcvar as "ripemd-gg ( ""! , ""! , ""! , ""! , ""! , ""! , ""! ); ""!" enddef

define macro of ripemd-gg ( a , b , c , d , e , x , s ); z as \ x . expand ( quote macro define ripemd-gg ( a , b , c , d , e , x , s ); z as newline let a = ripemd-mask1 ( [[a + ripemd-g ( b , c , d )] + x] + ripemd-gg-const ) in newline let a = ripemd-mask1 ( ripemd-rol ( a , s ) + e ) in newline let c = ripemd-rol ( c , 10 ) in z end define end quote , x ) end define

lgcdef lgccharge of ripemd-gg ( lgcvar , lgcvar , lgcvar , lgcvar , lgcvar , lgcvar , lgcvar ); lgcvar as "32" enddef

ripemd-hh ( " , " , " , " , " , " , " ); "

Index 632 of page base

lgcdef lgcname of ripemd-hh ( lgcvar , lgcvar , lgcvar , lgcvar , lgcvar , lgcvar , lgcvar ); lgcvar as "ripemd-hh ( ""! , ""! , ""! , ""! , ""! , ""! , ""! ); ""!" enddef

define macro of ripemd-hh ( a , b , c , d , e , x , s ); z as \ x . expand ( quote macro define ripemd-hh ( a , b , c , d , e , x , s ); z as newline let a = ripemd-mask1 ( [[a + ripemd-h ( b , c , d )] + x] + ripemd-hh-const ) in newline let a = ripemd-mask1 ( ripemd-rol ( a , s ) + e ) in newline let c = ripemd-rol ( c , 10 ) in z end define end quote , x ) end define

lgcdef lgccharge of ripemd-hh ( lgcvar , lgcvar , lgcvar , lgcvar , lgcvar , lgcvar , lgcvar ); lgcvar as "32" enddef

ripemd-ii ( " , " , " , " , " , " , " ); "

Index 633 of page base

lgcdef lgcname of ripemd-ii ( lgcvar , lgcvar , lgcvar , lgcvar , lgcvar , lgcvar , lgcvar ); lgcvar as "ripemd-ii ( ""! , ""! , ""! , ""! , ""! , ""! , ""! ); ""!" enddef

define macro of ripemd-ii ( a , b , c , d , e , x , s ); z as \ x . expand ( quote macro define ripemd-ii ( a , b , c , d , e , x , s ); z as newline let a = ripemd-mask1 ( [[a + ripemd-i ( b , c , d )] + x] + ripemd-ii-const ) in newline let a = ripemd-mask1 ( ripemd-rol ( a , s ) + e ) in newline let c = ripemd-rol ( c , 10 ) in z end define end quote , x ) end define

lgcdef lgccharge of ripemd-ii ( lgcvar , lgcvar , lgcvar , lgcvar , lgcvar , lgcvar , lgcvar ); lgcvar as "32" enddef

ripemd-jj ( " , " , " , " , " , " , " ); "

Index 634 of page base

lgcdef lgcname of ripemd-jj ( lgcvar , lgcvar , lgcvar , lgcvar , lgcvar , lgcvar , lgcvar ); lgcvar as "ripemd-jj ( ""! , ""! , ""! , ""! , ""! , ""! , ""! ); ""!" enddef

define macro of ripemd-jj ( a , b , c , d , e , x , s ); z as \ x . expand ( quote macro define ripemd-jj ( a , b , c , d , e , x , s ); z as newline let a = ripemd-mask1 ( [[a + ripemd-j ( b , c , d )] + x] + ripemd-jj-const ) in newline let a = ripemd-mask1 ( ripemd-rol ( a , s ) + e ) in newline let c = ripemd-rol ( c , 10 ) in z end define end quote , x ) end define

lgcdef lgccharge of ripemd-jj ( lgcvar , lgcvar , lgcvar , lgcvar , lgcvar , lgcvar , lgcvar ); lgcvar as "32" enddef

ripemd-fff ( " , " , " , " , " , " , " ); "

Index 635 of page base

lgcdef lgcname of ripemd-fff ( lgcvar , lgcvar , lgcvar , lgcvar , lgcvar , lgcvar , lgcvar ); lgcvar as "ripemd-fff ( ""! , ""! , ""! , ""! , ""! , ""! , ""! ); ""!" enddef

define macro of ripemd-fff ( a , b , c , d , e , x , s ); z as \ x . expand ( quote macro define ripemd-fff ( a , b , c , d , e , x , s ); z as newline let a = ripemd-mask1 ( [a + ripemd-f ( b , c , d )] + x ) in newline let a = ripemd-mask1 ( ripemd-rol ( a , s ) + e ) in newline let c = ripemd-rol ( c , 10 ) in z end define end quote , x ) end define

lgcdef lgccharge of ripemd-fff ( lgcvar , lgcvar , lgcvar , lgcvar , lgcvar , lgcvar , lgcvar ); lgcvar as "32" enddef

ripemd-ggg ( " , " , " , " , " , " , " ); "

Index 636 of page base

lgcdef lgcname of ripemd-ggg ( lgcvar , lgcvar , lgcvar , lgcvar , lgcvar , lgcvar , lgcvar ); lgcvar as "ripemd-ggg ( ""! , ""! , ""! , ""! , ""! , ""! , ""! ); ""!" enddef

define macro of ripemd-ggg ( a , b , c , d , e , x , s ); z as \ x . expand ( quote macro define ripemd-ggg ( a , b , c , d , e , x , s ); z as newline let a = ripemd-mask1 ( [[a + ripemd-g ( b , c , d )] + x] + ripemd-ggg-const ) in newline let a = ripemd-mask1 ( ripemd-rol ( a , s ) + e ) in newline let c = ripemd-rol ( c , 10 ) in z end define end quote , x ) end define

lgcdef lgccharge of ripemd-ggg ( lgcvar , lgcvar , lgcvar , lgcvar , lgcvar , lgcvar , lgcvar ); lgcvar as "32" enddef

ripemd-hhh ( " , " , " , " , " , " , " ); "

Index 637 of page base

lgcdef lgcname of ripemd-hhh ( lgcvar , lgcvar , lgcvar , lgcvar , lgcvar , lgcvar , lgcvar ); lgcvar as "ripemd-hhh ( ""! , ""! , ""! , ""! , ""! , ""! , ""! ); ""!" enddef

define macro of ripemd-hhh ( a , b , c , d , e , x , s ); z as \ x . expand ( quote macro define ripemd-hhh ( a , b , c , d , e , x , s ); z as newline let a = ripemd-mask1 ( [[a + ripemd-h ( b , c , d )] + x] + ripemd-hhh-const ) in newline let a = ripemd-mask1 ( ripemd-rol ( a , s ) + e ) in newline let c = ripemd-rol ( c , 10 ) in z end define end quote , x ) end define

lgcdef lgccharge of ripemd-hhh ( lgcvar , lgcvar , lgcvar , lgcvar , lgcvar , lgcvar , lgcvar ); lgcvar as "32" enddef

ripemd-iii ( " , " , " , " , " , " , " ); "

Index 638 of page base

lgcdef lgcname of ripemd-iii ( lgcvar , lgcvar , lgcvar , lgcvar , lgcvar , lgcvar , lgcvar ); lgcvar as "ripemd-iii ( ""! , ""! , ""! , ""! , ""! , ""! , ""! ); ""!" enddef

define macro of ripemd-iii ( a , b , c , d , e , x , s ); z as \ x . expand ( quote macro define ripemd-iii ( a , b , c , d , e , x , s ); z as newline let a = ripemd-mask1 ( [[a + ripemd-i ( b , c , d )] + x] + ripemd-iii-const ) in newline let a = ripemd-mask1 ( ripemd-rol ( a , s ) + e ) in newline let c = ripemd-rol ( c , 10 ) in z end define end quote , x ) end define

lgcdef lgccharge of ripemd-iii ( lgcvar , lgcvar , lgcvar , lgcvar , lgcvar , lgcvar , lgcvar ); lgcvar as "32" enddef

ripemd-jjj ( " , " , " , " , " , " , " ); "

Index 639 of page base

lgcdef lgcname of ripemd-jjj ( lgcvar , lgcvar , lgcvar , lgcvar , lgcvar , lgcvar , lgcvar ); lgcvar as "ripemd-jjj ( ""! , ""! , ""! , ""! , ""! , ""! , ""! ); ""!" enddef

define macro of ripemd-jjj ( a , b , c , d , e , x , s ); z as \ x . expand ( quote macro define ripemd-jjj ( a , b , c , d , e , x , s ); z as newline let a = ripemd-mask1 ( [[a + ripemd-j ( b , c , d )] + x] + ripemd-jjj-const ) in newline let a = ripemd-mask1 ( ripemd-rol ( a , s ) + e ) in newline let c = ripemd-rol ( c , 10 ) in z end define end quote , x ) end define

lgcdef lgccharge of ripemd-jjj ( lgcvar , lgcvar , lgcvar , lgcvar , lgcvar , lgcvar , lgcvar ); lgcvar as "32" enddef

norm "

Index 640 of page base

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

optimized define value of norm x as x norm end define

lgcdef lgccharge of norm lgcvar as "33" enddef

" Guard "

Index 641 of page base

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

define value of x Guard y as If x then y else y end define

lgcdef lgccharge of lgcvar Guard lgcvar as "33" enddef

" is val : "

Index 642 of page base

lgcdef lgcname of lgcvar is val : lgcvar as ""-""! is val : ""!" enddef

Define tex show of x is val : y as "".[ x ][" {\in} \mathbf{V} \colon "[ y ]"".] end define

optimized define value of x is val : y as If x norm ExP then x else y end define

lgcdef lgccharge of lgcvar is val : lgcvar as "33" enddef

" is bool : "

Index 643 of page base

lgcdef lgcname of lgcvar is bool : lgcvar as ""-""! is bool : ""!" enddef

Define tex show of x is bool : y as "".[ x ][" {\in} \mathbf{B} \colon "[ y ]"".] end define

optimized define value of x is bool : y as x is val : [y is val : If x norm BoolP then y else exception] end define

lgcdef lgccharge of lgcvar is bool : lgcvar as "33" enddef

" is int : "

Index 644 of page base

lgcdef lgcname of lgcvar is int : lgcvar as ""-""! is int : ""!" enddef

Define tex show of x is int : y as "".[ x ][" {\in} \mathbf{Z} \colon "[ y ]"".] end define

optimized define value of x is int : y as x is val : [y is val : If x norm IntP then y else exception] end define

lgcdef lgccharge of lgcvar is int : lgcvar as "33" enddef

" is pair : "

Index 645 of page base

lgcdef lgcname of lgcvar is pair : lgcvar as ""-""! is pair : ""!" enddef

Define tex show of x is pair : y as "".[ x ][" {\in} \mathbf{P} \colon "[ y ]"".] end define

optimized define value of x is pair : y as x is val : [y is val : If x norm PairP then y else exception] end define

lgcdef lgccharge of lgcvar is pair : lgcvar as "33" enddef

" is map : "

Index 646 of page base

lgcdef lgcname of lgcvar is map : lgcvar as ""-""! is map : ""!" enddef

Define tex show of x is map : y as "".[ x ][" {\in} \mathbf{M} \colon "[ y ]"".] end define

optimized define value of x is map : y as x is val : [y is val : If x norm MapP then y else exception] end define

lgcdef lgccharge of lgcvar is map : lgcvar as "33" enddef

" is object : "

Index 647 of page base

lgcdef lgcname of lgcvar is object : lgcvar as ""-""! is object : ""!" enddef

Define tex show of x is object : y as "".[ x ][" {\in} \mathbf{O} \colon "[ y ]"".] end define

optimized define value of x is object : y as x is val : [y is val : If x norm ObjectP then y else exception] end define

lgcdef lgccharge of lgcvar is object : lgcvar as "33" enddef

" reduce to "

Index 648 of page base

lgcdef lgcname of lgcvar reduce to lgcvar as ""-""! reduce to ""!" enddef

Define tex show of x reduce to y as "".[ x ][" \stackrel {+}{\rightarrow }"[ y ]"".] end define

lgcdef lgccharge of lgcvar reduce to lgcvar as "34" enddef

" == "

Index 649 of page base

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

Define tex show of x == y as "".[ x ][" \equiv "[ y ]"".] end define

lgcdef lgccharge of lgcvar == lgcvar as "34" enddef

" lgcthen "

Index 650 of page base

Define tex use of x lgcthen y as x,[" \newline ",y] end define

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

lgcdef lgccharge of lgcvar lgcthen lgcvar as "51" enddef

","

Index 651 of page base

Define tex use of x,y as "".[ x ]["".[ y ]"".] end define

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

lgcdef lgccharge of lgcvar,lgcvar as "51" enddef

"[ " ]"

Index 652 of page base

Define tex use of x[ y ]z as "".[ x ]["".[ y ]["".[ z ]"".]] end define

lgcdef lgcname of lgcvar[ lgcvar ]lgcvar as ""-""![ ""! ]""!" enddef

lgcdef lgccharge of lgcvar[ lgcvar ]lgcvar as "51" enddef

"[[ " ]]"

Index 653 of page base

Define tex use of x[[ y ]]z as "".[ x ]["$"[ y ]["$"[ z ]"".]] end define

lgcdef lgcname of lgcvar[[ lgcvar ]]lgcvar as ""-""![[ ""! ]]""!" enddef

Define tex show of x[[ y ]]z as "".[ x ][" {\$}"[ y ][" {\$}"[ z ]"".]] end define

lgcdef lgccharge of lgcvar[[ lgcvar ]]lgcvar as "51" enddef

"[[[ " ]]]"

Index 654 of page base

Define tex use of x[[[ y ]]]z as "".[ x ]["\["[ y ]["\]"[ z ]"".]] end define

lgcdef lgcname of lgcvar[[[ lgcvar ]]]lgcvar as ""-""![[[ ""! ]]]""!" enddef

Define tex show of x[[[ y ]]]z as "".[ x ][" {\backslash[}"[ y ][" {\backslash]}"[ z ]"".]] end define

lgcdef lgccharge of lgcvar[[[ lgcvar ]]]lgcvar as "51" enddef

" endline

Index 655 of page base

Define tex use of x endline as "".[ x ]" \newline " end define

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

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

lgcdef lgccharge of lgcvar endline as "50" enddef

" linebreak "

Index 656 of page base

Define tex use of x linebreak y as "".[ x ][" \linebreak[4] "[ y ]"".] end define

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

lgcdef lgccharge of lgcvar linebreak lgcvar as "52" enddef

" & "

Index 657 of page base

Define tex use of x & y as "".[ x ][" & "[ y ]"".] end define

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

lgcdef lgccharge of lgcvar & lgcvar as "54" enddef

" \\ "

Index 658 of page base

Define tex use of x \\ y as "".[ x ][" \\{}"[ y ]"".] end define

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

lgcdef lgccharge of lgcvar \\ lgcvar as "56" enddef

echo

Index 6164079461 of the string page (page zero)

define execute of "echo" as Echo :: <<>> end define

eecho

Index 1578004342117 of the string page (page zero)

define execute of "eecho" as Eecho :: <<>> end define

hello

Index 1578072040808 of the string page (page zero)

define execute of "hello" as Hello World :: <<>> end define

lgciotest

Index 6870503975728821004140 of the string page (page zero)

define execute of "lgciotest" as lgcio1 :: <<>> end define

Charges

0

base
proclaim " as " end proclaim
lgcend
lgcvar
lgcdef " of " as " enddef
lgcname
lgccharge
empty
preassociative " greater than "
postassociative " greater than "
priority " equal "
priority " end priority
asterisk
name
Define " of " as " end define
math " end math
display math " end math
ensure math " end math
make math " end math
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
x
y
z
v
w
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
true
quote " end quote
optimized define " of " as " end define
tex use
tex show
priority
value
macro
render
claim
message
unpack
execute
exampleaspect0
exampleaspect1
exampleaspect2
show " end show
macro show " end show
hiding show " end show
hide " end hide
array ( " ) " end array
left
center
right
%%
( " )
include ( " )
< " | " := " >
bottom
false
define " of " as " end define
...
***
Zero
One
Two
Three
Four
Five
Six
Seven
Eight
Nine
Ten
Base
Xor ( " , " , " )
Carry ( " , " , " )
Plus ( " , " , " )
Borrow ( " , " , " )
Compare ( " , " , " )
Minus ( " , " , " )
BoolTag
IntTag
PairTag
ExTag
MapTag
equal1 ( " , " )
TheInt ( " , " )
int ( " )
plus1 ( " , " )
plus2 ( " , " , " , " )
minus1 ( " )
minus2 ( " , " )
times1 ( " , " )
times2 ( " , " , " , " )
lt1 ( " , " )
lt2 ( " , " , " , " )
append ( " , " )
reverse ( " )
revappend ( " , " )
nth ( " , " )
exception
map ( " )
Catch ( " )
catch ( " )
object ( " )
Object ( " , " , " )
destruct ( " )
0
1
2
3
4
5
6
7
8
9
numeral ( " )
num1 ( " , " , " )
num2 ( " , " , " )
evenp ( " )
oddp ( " )
half ( " )
small ( " )
double ( " , " )
lognot ( " )
logior ( " , " )
logxor ( " , " )
logand ( " , " )
logeqv ( " , " )
lognand ( " , " )
lognor ( " , " )
logandc1 ( " , " )
logandc2 ( " , " )
logorc1 ( " , " )
logorc2 ( " , " )
logtest ( " , " )
ash ( " , " )
ash+ ( " , " )
ash- ( " , " )
logbitp ( " , " )
logcount ( " )
logcount1 ( " )
integer-length ( " )
vector-mask
octet-base
vector-empty ( " )
vector-head1 ( " )
vector-tail1 ( " )
vector-cons ( " , " )
vector ( " )
vector-norm ( " )
vector-suffix ( " , " )
vector-prefix ( " , " )
vector-subseq ( " , " , " )
vector-length ( " )
vector-index ( " , " )
vector-head ( " )
vector-tail ( " )
vector2byte* ( " )
vector2byte*1 ( " , " )
vector2vector* ( " )
vector2vector*1 ( " , " )
bt2byte* ( " )
bt2byte*1 ( " , " )
bt2vector* ( " )
bt2vector*1 ( " , " )
bt2vector ( " )
revbyte*2vector ( " , " )
vector-revappend ( " , " )
vt2byte* ( " )
vt2byte*1 ( " , " )
vector-revappend1 ( " , " )
vt2vector* ( " )
vt2vector*1 ( " , " )
vt2vector ( " )
floor1 ( " , " )
ceiling1 ( " , " )
round1 ( " , " )
floor ( " , " )
ceiling ( " , " )
truncate ( " , " )
round ( " , " )
reverse quotient ( " )
length ( " )
length1 ( " , " )
list-prefix ( " , " )
list-suffix ( " , " )
lookup ( " , " , " )
zip ( " , " )
array1 ( " , " , " )
array2 ( " , " , " , " )
array3 ( " , " )
array4 ( " , " )
array5 ( " , " , " , " , " )
push ( " , " , " )
pop ( " , " )
get* ( " , " )
push* ( " , " , " )
pop* ( " , " )
array-domain ( " )
sort-merge ( " , " )
sort-merge1 ( " , " )
eval ( " , " , " )
eval1 ( " , " , " , " )
spy ( " )
trace ( " )
print ( " )
timer ( " )
measure ( " , " )
test1
test2 ( " )
diagnose " end diagnose
test3 ( " , " )
test3* ( " , " )
ttst1 ( " )
ftst1 ( " )
etst1 ( " )
ttst " end test
ftst " end test
etst " ; " end test
texshow " end texshow
testfunc1 ( " )
testfunc2 ( " , " )
testfunc3
testfunc4
testfunc5 ( " )
testfunc6 ( " )
testfunc7 ( " )
testfunc8 ( " , " )
YY
compile ( " )
compile1 ( " , " , " )
compile2 ( " , " , " )
compile3 ( " , " , " )
compile4 ( " , " )
make-constant ( " )
deBruijn ( " , " , " )
deBruijn1 ( " , " )
deBruijn2 ( " )
lazy-nth ( " , " )
make-variable ( " , " , " )
make-lambda ( " )
make-lambdas ( " , " )
compile-code ( " , " )
compile-code1 ( " , " , " )
compile-code2 ( " , " , " , " )
compile-code2* ( " , " , " , " , " )
prune ( " , " )
prune1 ( " , " )
prune* ( " , " , " )
eval-claim
compile-claim ( " , " , " )
macro1
macro2 ( " )
macro3 ( " , " , " )
macro3* ( " , " , " )
macro4 ( " )
macrostate0
stateexpand ( " , " , " )
stateexpand* ( " , " , " )
substitute ( " , " , " )
substitute* ( " , " , " )
expand ( " , " )
protect " end protect
Macro define " as " end define
Macrodefine ( " )
macro define " as " end define
macrodefine ( " )
self
makeself ( " )
root protect " end protect
rootprotect ( " )
render define " as " end define
tex use define " as " end define
tex show define " as " end define
value define " as " end define
message define " as " end define
execute define " as " end define
priority table "
verifier " end verifier
unpacker " end unpacker
renderer " end renderer
expander " end expander
ragged right
make macro expanded version ragged right
<<>>
<< " >>
tuple1 ( " )
tuple2 ( " , " )
eager define " as " end define
eager1 ( " )
eager2 ( " , " , " )
eager message define " as " end define
late eager define " as " end define
late unhide " end unhide
late optimized define " as " end define
macrolet1 ( " )
destructure
destructure define " as " end define
let1 ( " )
let2 ( " , " , " , " )
let3 ( " , " , " , " )
make-var ( " )
make-let ( " , " , " )
make-prime ( " )
make-head ( " )
make-tail ( " )
back " quote " end quote
make-root ( " , " )
make-pair ( " , " , " )
make-true ( " )
make-quote ( " , " )
make-make-root ( " , " , " )
backquote0 ( " )
backquote1 ( " , " , " )
backquote2 ( " , " , " , " , " )
backquote2* ( " , " , " , " , " )
text " : " end text
tex ( " )
latex ( " )
bibtex ( " )
makeindex ( " )
dvipdfm ( " )
page ( " , " ) title " bib " main text " appendix " end page
page1 ( " )
tex-file ( " , " , " )
tex-command ( " , " )
quit request ( " )
boot event ( " , " , " , " )
write request ( " )
writeln request ( " )
println ( " )
read request
read reply ( " )
exec request ( " , " )
exec reply ( " , " )
extend request ( " , " )
extend reply ( " )
exit interrupt
time interrupt
memory interrupt
Hello World
Echo
Echo1 ( " )
Eecho
Eecho1 ( " )
verbatim define " as " end define
lgcio ( " )
EOS
FileWrite
FileWriteExec
FileRead
FileRm
FileSymlink
FileReadLink
FileMkdir
FileRmdir
FileDir
FileType
FileTypeRead
TextWrite
TextWriteExec
FileGetCwd
UnixTime
Demonize
Execlp1
TcpQuery
FileTypeNonexistent
FileTypeOther
FileTypeRegular
FileTypeDirectory
FileTypeLink
NULL
TAB
LF
FF
CR
SP
QQ
V128
V255
CRLF
LFCR
''
septet*2card ( " , " )
septet-base
parse-card ( " )
parse-card1 ( " , " )
exp10 ( " )
parse-unixTime ( " )
make-card ( " )
fileWrite ( " , " )
fileWriteExec ( " , " )
fileRead ( " )
fileRm ( " )
fileSymlink ( " , " )
fileReadLink ( " )
fileMkdir ( " )
fileRmdir ( " )
fileDir ( " )
fileType ( " )
fileTypeRead ( " )
textWrite ( " , " , " )
textWriteExec ( " , " , " )
fileGetCwd
unixTime
demonize ( " , " , " )
execlp1 ( " , " , " )
tcpQuery ( " , " , " , " , " )
lgcio-interface
lgcio1
lgcio2 ( " )
lgcio3
lgcio4 ( " )
default ( " , " )
repeat ( " , " )
lgc-string2mixed ( " )
lgc-string2mixed1 ( " )
lgc-hexdigit ( " )
rack2sl ( " )
rack2sl1 ( " , " )
rack2sl-card ( " , " )
rack2sl-pair ( " , " )
sl2rack ( " )
sl2rack1 ( " , " , " )
sl2rack-vector ( " , " , " , " , " )
lgr-rack-clean ( " )
lgr-cache-restore ( " )
lgr-cluster-closure ( " , " )
lgr-cluster-closure1 ( " , " )
lgr-array-add ( " , " )
lgr-cluster-closure2 ( " , " )
ripemd-mask0
ripemd-mask1 ( " )
ripemd-rol ( " , " )
ripemd-f ( " , " , " )
ripemd-g ( " , " , " )
ripemd-h ( " , " , " )
ripemd-i ( " , " , " )
ripemd-j ( " , " , " )
ripemd-gg-const
ripemd-hh-const
ripemd-ii-const
ripemd-jj-const
ripemd-ggg-const
ripemd-hhh-const
ripemd-iii-const
ripemd-jjj-const
ripemd-init
ripemd-compress ( " , " )
ripemd-buffer2array ( " )
ripemd-buffer2array1 ( " , " , " )
ripemd-chunk
ripemd-pad
ripemd ( " )
ripemds ( " )
ripemd1 ( " , " , " , " )
ripemd-finish ( " , " , " , " )
ripemd-length ( " , " )
ripemd2 ( " )

2

+"
-"
0"
1"
2"
3"
4"
5"
6"
7"
8"
9"
tight newline "
!"

4

" factorial
" _ { " }
" prime
"_"
" %0
" %1
" %2
" %3
" %4
" %5
" %6
" %7
" %8
" %9
" head
" tail
" raise
" catch
" catching maptag
" maptag
" untag
" boolp
" truep
" falsep
" intp
" pairp
" atom
" mapp
" objectp
" root
" Head
" Tail
" TheBool
" TheNat
" norm
" Tag
" BoolP
" IntP
" PairP
" ExP
" MapP
" ObjectP
" Sign
" Mag
" zeroth
" first
" second
" third
" fourth
" fifth
" sixth
" seventh
" eighth
" ninth
" ref
" idx
" debug
" [[ " ]]
" [[ " -> " ]]
" [[ " => " ]]
" tight endline
" unquote
" last

6

" ' "
" apply "

8

- "
+ "

10

" Times "
" * "

12

" Plus "
" Minus "
" + "
" - "

14

PlusTag "
MinusTag "

16

" div "
" mod "

17

" LazyPair "
" Pair "
" NatPair "
" :: "

19

" ,, "

20

" = "
" != "
" Equal "
" LT "
" < "
" <= "
" > "
" >= "
" r= "
" t= "
" t=* "

22

Not "
.not. "
notnot "

24

" And "
" .and. "
" .then. "
" .prog1. "
" &c "

26

" Or "
" .or. "

29

" Iff "

30

" Select " else " end select
" IN "

32

\ " . "
If " then " else "
if " then " else "
newline "
LET " BE "
let " := " in "
let " = " in "
ripemd-ff ( " , " , " , " , " , " , " ); "
ripemd-gg ( " , " , " , " , " , " , " ); "
ripemd-hh ( " , " , " , " , " , " , " ); "
ripemd-ii ( " , " , " , " , " , " , " ); "
ripemd-jj ( " , " , " , " , " , " , " ); "
ripemd-fff ( " , " , " , " , " , " , " ); "
ripemd-ggg ( " , " , " , " , " , " , " ); "
ripemd-hhh ( " , " , " , " , " , " , " ); "
ripemd-iii ( " , " , " , " , " , " , " ); "
ripemd-jjj ( " , " , " , " , " , " , " ); "

33

norm "
" Guard "
" is val : "
" is bool : "
" is int : "
" is pair : "
" is map : "
" is object : "

34

" reduce to "
" == "

50

" endline

51

" lgcthen "
","
"[ " ]"
"[[ " ]]"
"[[[ " ]]]"

52

" linebreak "

54

" & "

56

" \\ "

The Logiweb compiler (lgc) GRD-2009-11-13.UTC:08:44:26.210720