mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-05-19 16:12:52 -06:00
gf-book web page index and toc
This commit is contained in:
39
gf-book/examples/chapter8/LogicEng.gf
Normal file
39
gf-book/examples/chapter8/LogicEng.gf
Normal file
@@ -0,0 +1,39 @@
|
||||
concrete LogicEng of Logic = open
|
||||
SyntaxEng, (P = ParadigmsEng), SymbolicEng, Prelude in {
|
||||
lincat
|
||||
Stm = Text ;
|
||||
Prop = {pos,neg : S ; isAtom : Bool} ;
|
||||
Atom = Cl ;
|
||||
Ind = NP ;
|
||||
Dom = CN ;
|
||||
Var = NP ;
|
||||
[Prop] = ListS ;
|
||||
[Var] = NP ;
|
||||
lin
|
||||
SProp p = mkText p.pos ;
|
||||
And ps = complexProp (mkS and_Conj ps) ;
|
||||
Or ps = complexProp (mkS or_Conj ps) ;
|
||||
If A B = complexProp (mkS if_then_Conj (mkListS A.pos B.pos)) ;
|
||||
Not A = complexProp A.neg ;
|
||||
All xs A B = complexProp (mkS (mkAdv for_Prep
|
||||
(mkNP all_Predet (mkNP a_Quant plNum (mkCN A xs)))) B.pos) ;
|
||||
Exist xs A B = complexProp (mkS (mkAdv for_Prep
|
||||
(mkNP somePl_Det (mkCN A xs))) B.pos) ;
|
||||
PAtom p =
|
||||
{pos = mkS p ; neg = mkS negativePol p ; isAtom = True} ;
|
||||
IVar x = x ;
|
||||
VString s = symb s ;
|
||||
BaseProp A B = mkListS A.pos B.pos ;
|
||||
ConsProp A As = mkListS A.pos As ;
|
||||
BaseVar x = x ;
|
||||
ConsVar x xs = mkNP and_Conj (mkListNP x xs) ;
|
||||
oper
|
||||
complexProp : S -> {pos,neg : S ; isAtom : Bool} = \s -> {
|
||||
pos = s ;
|
||||
neg = negS s ;
|
||||
isAtom = False
|
||||
} ;
|
||||
negS : S -> S = \s -> mkS negativePol (mkCl (mkNP it_Pron)
|
||||
(mkNP the_Quant (mkCN (mkCN (P.mkN "case")) s))) ;
|
||||
if_Then_Conj : Conj = P.mkConj "if" "then" ;
|
||||
}
|
||||
Reference in New Issue
Block a user