a logic library; fix in make mathematical

This commit is contained in:
aarne
2006-11-26 17:14:20 +00:00
parent 4bde587ab4
commit a36758f56e
8 changed files with 145 additions and 3 deletions

View File

@@ -0,0 +1,8 @@
interface LexTheory = open Grammar in {
oper
assume_VS : VS ;
case_N : N ;
have_V2 : V2 ;
}

View File

@@ -0,0 +1,7 @@
instance LexTheoryEng of LexTheory = open GrammarEng,ParadigmsEng,IrregEng in {
oper
assume_VS = mkVS (regV "assume") ;
case_N = regN "case" ;
have_V2 = dirV2 have_V ;
}

47
examples/logic/Theory.gf Normal file
View File

@@ -0,0 +1,47 @@
abstract Theory = {
cat
Chapter ;
Jment ;
[Jment] {0} ;
Decl ;
[Decl] {0} ;
Prop ;
Proof ;
[Proof] {2} ;
Branch ;
Typ ;
Obj ;
Label ;
Ref ;
[Ref] ;
Adverb ;
Number ;
fun
Chap : Label -> [Jment] -> Chapter ; -- title, text
JDefObj : [Decl] -> Obj -> Obj -> Jment ; -- a = b (G)
JDefObjTyp : [Decl] -> Typ -> Obj -> Obj -> Jment ; -- a = b : A (G)
JDefProp : [Decl] -> Prop -> Prop -> Jment ; -- A = B : Prop (G)
JThm : [Decl] -> Prop -> Proof -> Jment ; -- p : P (G)
DProp : Prop -> Decl ; -- assume P
DPropLabel : Label -> Prop -> Label ; -- assume P (h)
DTyp : Obj -> Typ -> Decl ; -- let x,y be T
PProp : Prop -> Proof ; -- P.
PAdvProp : Adverb -> Prop -> Proof ; -- Hence, P.
PDecl : Decl -> Proof ; -- Assume P.
PBranch : Branch -> [Proof] -> Proof ; -- By cases: P1 P2
BCases : Number -> Branch ; -- We have n cases.
ARef : Ref -> Adverb ; -- by Thm 2
AHence : Adverb ; -- therefore
AAFort : Adverb ; -- a fortiori
RLabel : Label -> Ref ; -- Thm 2
RMany : [Ref] -> Ref ; -- Thm 2 and Lemma 4
}

View File

@@ -0,0 +1,10 @@
--# -path=.:mathematical:present:resource-1.0/api:prelude
concrete TheoryEng of Theory = TheoryI with
(LexTheory = LexTheoryEng),
(Grammar = GrammarEng),
(Symbolic = SymbolicEng),
(Symbol = SymbolEng),
(Combinators = CombinatorsEng),
(Constructors = ConstructorsEng),
;

56
examples/logic/TheoryI.gf Normal file
View File

@@ -0,0 +1,56 @@
incomplete concrete TheoryI of Theory =
open
LexTheory,
Grammar,
Symbolic,
Symbol,
Combinators,
Constructors,
(C=ConstructX),
Prelude
in {
lincat
Chapter = Text ;
Jment = Text ;
Decl = Text ;
Prop = S ;
Branch = S ;
Proof = Text ;
[Proof] = Text ;
Typ = CN ;
Obj = NP ;
Label = NP ;
Adverb = PConj ;
Ref = NP ;
[Ref] = [NP] ;
Number = Num ;
lin
Chap title jments =
appendText (mkText (mkPhr (mkUtt title)) TEmpty) jments ;
JDefObj decl a b =
appendText decl (mkUtt (mkS (pred b a))) ;
DProp p =
mkText (mkPhr (mkUtt (mkImp (mkVP assume_VS p)))) TEmpty ;
DTyp a ty = --- x pro a: refresh bug
mkText (mkPhr (mkUtt (mkImp (mkVP assume_VS (mkS (pred ty a)))))) TEmpty ;
PProp p = mkText (mkPhr p) TEmpty ;
PAdvProp a p = mkText (mkPhr a (mkUtt p) NoVoc) TEmpty ;
PDecl d = d ;
PBranch b ps = mkText (mkPhr b) ps ;
BCases n =
mkS (pred have_V2 (mkNP we_Pron) (mkNP (mkDet (mkNum n2)) case_N)) ;
ARef h = mkAdv by8means_Prep h ;
AHence = therefore_PConj ;
AAFort = C.mkPConj ["a fortiori"] ;
RLabel h = h ;
RMany rs = mkNP and_Conj rs ;
}

View File

@@ -58,7 +58,14 @@ present:
mv */*.gfc */*.gfr ../present
mathematical:
$(GF) -make -nocf $(GFCP) mathematical/Mathematical???.gf
$(GFCC) mathematical/MathematicalEng.gf
$(GFCC) mathematical/MathematicalNor.gf
$(GFCC) mathematical/MathematicalGer.gf
$(GFCC) mathematical/MathematicalSpa.gf
$(GFCC) mathematical/MathematicalIta.gf
$(GFCC) mathematical/MathematicalFre.gf
$(GFCC) mathematical/MathematicalSwe.gf
$(GFCC) mathematical/MathematicalFin.gf
mv mathematical/*.gfc ../mathematical
multimodal:

View File

@@ -20,7 +20,10 @@ incomplete resource Combinators = open Grammar in {
= \a,x,y -> PredVP (ConjNP and_Conj (BaseNP x y)) (UseComp (CompAP (PositA a))) ;
pred : N -> NP -> Cl
= \n,x -> PredVP x (UseComp (CompNP (DetCN (DetSg (SgQuant IndefArt) NoOrd) (UseN n)))) ;
pred : N2 -> NP -> NP -> Cl
pred : CN -> NP -> Cl
= \n,x -> PredVP x (UseComp (CompNP (DetCN (DetSg (SgQuant IndefArt) NoOrd) n))) ;
pred : NP -> NP -> Cl
= \n,x -> PredVP x (UseComp (CompNP n)) ; pred : N2 -> NP -> NP -> Cl
= \n,x,y -> PredVP x (UseComp (CompNP (DetCN (DetSg (SgQuant IndefArt) NoOrd) (ComplN2 n y)))) ;
pred : N -> NP -> NP -> Cl
= \n,x,y -> PredVP (ConjNP and_Conj (BaseNP x y)) (UseComp (CompNP (DetCN (DetPl (PlQuant IndefArt) NoNum NoOrd) (UseN n)))) ;
@@ -97,5 +100,9 @@ incomplete resource Combinators = open Grammar in {
} ;
-- This is not in ground API, because it would destroy parsing.
appendText : Text -> Text -> Text
= \x,y -> {s = x.s ++ y.s ; lock_Text = <>} ;
}

View File

@@ -38,7 +38,7 @@ incomplete resource Constructors = open Grammar in {
mkText : overload {
mkText : Text ; -- [empty text]
mkText : Phr -> Text -> Text; -- John walks. ...
mkText : Phr -> Text -> Text -- John walks. ...
} ;
mkPhr : overload {