/
lkf-formulas.sig
29 lines (23 loc) · 1.17 KB
/
lkf-formulas.sig
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
sig lkf-formulas.
kind form, i, atm type. % Formulas, terms, and atoms
type n, p atm -> form. % Constructors of literals
type f+, f-, t+, t- form. % Units
type d-, d+ form -> form. % Delays
type &-&, &+& form -> form -> form. % Conjunctions
type !-!, !+! form -> form -> form. % Disjunction
type all, some (i -> form) -> form. % Quantifiers
infixr &-&, &+& 6.
infixr !-!, !+! 5.
type isNegForm, isNegAtm, isPosForm, isPosAtm, isNeg, isPos form -> o.
type negate form -> form -> o.
% predicates for constructing and deconstructing formulas
type true+, true-, false+, false- form -> o.
type conj+, conj- form -> form -> form -> o.
type disj+, disj- form -> form -> form -> o.
type lit-, lit+ atm -> form -> o.
type all-, some+ (i -> form) -> form -> o.
% Notice that the definition of ensure satisfies the
% deMorgan principles:
% |- ensure+ A B, negate B C holds if and only if
% |- negate A D, ensure- D C
type ensure-, ensure+ form -> form -> o.