View file src/slc/rep.prf - Download
# Representation of proofs and evaluation of representations
#
# Run Proof Logic with option -f for full reduction
# Example :
# $ rlwrap ./pl-v10 -f
#
# data Proof =
# SMB String
# | VAR
# | NXV Proof
# | FNC Proof
# | APL Proof Proof
# | GTR Proof Proof
# | EQU Proof Proof
# & B ^f ^g ^x (f (g x)).
# & M [* *].
# & Y ^f (M (B f M)).
& Y [[* *] ['* (* *)]].
///(Y f) ; f //(Y f).
& SMB ^name ^s ^v ^n ^f ^a ^t ^e (s name).
& VAR ^s ^v ^n ^f ^a ^t ^e v.
& NXV ^x ^s ^v ^n ^f ^a ^t ^e (n x).
& FNC ^x ^s ^v ^n ^f ^a ^t ^e (f x).
& APL ^x ^y ^s ^v ^n ^f ^a ^t ^e (a x y).
& GTR ^x ^y ^s ^v ^n ^f ^a ^t ^e (t x y).
& EQU ^x ^y ^s ^v ^n ^f ^a ^t ^e (e x y).
& evalv (Y ^eva ^v ^x (x
^name name
v
^x '(eva v x)
^x [eva * x]
^x ^y (eva v x (eva v y))
^x ^y (eva v x ; eva v y)
^x ^y (eva v x = eva v y)
)).
& eval (evalv *).
~(eval (SMB a)).
~(eval VAR).
~(eval (NXV VAR)).
~(eval (FNC VAR)).
~(eval (FNC (SMB a))).
~(eval (APL (SMB a) (SMB b))).
~(eval (GTR (SMB a) (SMB b))).
~(eval (EQU (SMB a) (SMB b))).