%%% Uniform Derivations %%% Author: Frank Pfenning solve : o -> type. % solve goal formulas assume : o -> type. % assume program formulas >> : o -> p -> type. % immediate entailment %infix none 8 >>. %name solve S. %name assume H. %name >> I. %mode solve *A. %mode assume *A. %mode >> *A *P. s_and : solve (A1 and A2) <- solve A1 <- solve A2. s_imp : solve (A2 imp A1) <- (assume A2 -> solve A1). s_true : solve (true). s_forall : solve (forall A1) <- {a:i} solve (A1 a). s_atom : solve (atom P) <- assume A <- A >> P. i_andl : A1 and A2 >> P <- A1 >> P. i_andr : A1 and A2 >> P <- A2 >> P. i_imp : A2 imp A1 >> P <- A1 >> P <- solve A2. i_forall : {T:i} forall A1 >> P <- A1 T >> P. i_atom : (atom P) >> P.