1
0
forked from GitHub/gf-core
Files
gf-core/gf-book/examples/chapter8/LogicBEng.gf
2011-01-11 15:46:43 +00:00

39 lines
1.0 KiB
Plaintext

concrete LogicEng of Logic = open
SyntaxEng, (P = ParadigmsEng), SymbolicEng, Prelude in {
lincat
Stm = Text ;
Prop = S ;
Atom = Cl ;
Ind = NP ;
Dom = CN ;
Var = NP ;
[Prop] = [S] ;
[Var] = NP ;
lin
SProp = mkText ;
And = mkS and_Conj ; -- A, B ... and C
Or = mkS or_Conj ; -- A, B ... or C
If A B = -- if A B
mkS (mkAdv if_Subj A) B ;
Not A = -- it is not the case that A
mkS negativePol (mkCl
(mkVP (mkNP the_Quant
(mkCN case_CN A)))) ;
All xs A B = -- for all A's xs, B
mkS (mkAdv for_Prep
(mkNP all_Predet (mkNP a_Quant
plNum (mkCN A xs)))) B ;
Exist xs A B = -- for some A's xs, B
mkS (mkAdv for_Prep
(mkNP somePl_Det (mkCN A xs))) B ;
PAtom = mkS ;
IVar x = x ;
VString s = symb s ;
BaseProp A B = mkListS A B ;
ConsProp A As = mkListS A As ;
BaseVar x = x ;
ConsVar x xs = mkNP and_Conj (mkListNP x xs) ;
oper
case_CN : CN = mkCN (P.mkN "case") ;
}