Commit 4aaa4222 authored by jfschaefer's avatar jfschaefer
Browse files

extend coverage for loop def example

parent 1bd2689f
......@@ -24,7 +24,7 @@ abstract NGrammar = MCats, Grammar, Extra, ExtraEngAbs ** {
def_mobj_mobjprop : MObj -> Identifier -> MObjProp -> Definition; -- "an integer is called prime"
iff_definition : Definition -> StatementFin -> Definition; -- "... is called ... iff ..."
def_mobj_is_mobj : MObj -> MObj -> Definition; -- "an alphabet $A$ is a finite set
def_mobj_is_mobj : MObj -> Identifier -> MObj -> Definition; -- "an alphabet $A$ is a finite set
let_id_be_a_mobj : Identifier -> MObj -> Declaration;
......
concrete NGrammarEng of NGrammar = MCatsEng, GrammarEng, ExtraEng ** open SyntaxEng, ParadigmsEng, UtilsEng, ResEng, ParamX in {
oper
call_V2A : V2A = mkV2A (mkV "call" "calls" "called" "called" "calling") noPrep;
call_V3 : V3 = mkV3 (mkV "call" "calls" "called" "called" "calling");
lin
PosPol = GrammarEng.PPos;
......@@ -32,8 +33,10 @@ concrete NGrammarEng of NGrammar = MCatsEng, GrammarEng, ExtraEng ** open Syntax
-- -- iff_definition defi condition = lin S { s = "iff" }; -- better solution for this?
iff_definition defi condition = lin S { s = defi.s ++ "iff" ++ condition.s.s }; -- better solution for this?
-- def_defmobj_defmobj a b = mkCl a b;
def_mobj_is_mobj definiendum definiens =
mkS (mkCl (DetCN aSg_Det (mobjToCN definiendum)) (mobjToCN definiens));
def_mobj_is_mobj definiendum id definiens =
mkS (mkCl (DetCN aSg_Det (mobjToCN definiendum id)) (mobjToCN definiens)) -- a unitary quasigroup is a loop
| mkS (mkCl (DetCN aSg_Det (mobjToCN definiendum id)) -- a unitary quasigroup is called a loop
(PastPartAP (mkVPSlash call_V3 (DetCN aSg_Det (mobjToCN definiens)))));
-- mkS (mkCl (DetCN {- mkNP is for some reason ambiguous -}
-- aSg_Det (appo_mobj definiendum representative)) definiens);
......
......@@ -4,10 +4,12 @@ abstract NLexicon = MCats, NLexiconMObj, Cat ** {
-- integer_MObj : MObj;
-- set_MObj : MObj;
-- alphabet_MObj : MObj;
quasigroup_MObj : MObj;
finite_MObjProp : MObjProp;
empty_MObjProp : MObjProp;
even_MObjProp : MObjProp;
positive_MObjProp : MObjProp;
prime_MObjProp : MObjProp;
unital_MObjProp : MObjProp;
}
concrete NLexiconEng of NLexicon = MCatsEng, NLexiconMObjEng ** open SyntaxEng, ParadigmsEng in {
concrete NLexiconEng of NLexicon = MCatsEng, NLexiconMObjEng ** open SyntaxEng, ParadigmsEng, UtilsEng in {
lin
-- integer_MObj = mkCN (mkN "integer");
-- set_MObj = mkCN (mkN "set");
-- alphabet_MObj = mkCN (mkN "alphabet");
quasigroup_MObj = mkMObj (mkN "quasigroup");
finite_MObjProp = mkAP (mkA "finite");
empty_MObjProp = mkAP (mkA "empty");
even_MObjProp = mkAP (mkA "even");
positive_MObjProp = mkAP (mkA "positive");
prime_MObjProp = mkAP (mkA "prime");
unital_MObjProp = mkAP (mkA "unital");
}
......@@ -3,10 +3,13 @@ concrete NLexiconLog of NLexicon = MCatsLog, NLexiconMObjLog ** {
-- integer_MObj = mkCN (mkN "integer");
-- set_MObj = mkCN (mkN "set");
-- alphabet_MObj = mkCN (mkN "alphabet");
quasigroup_MObj = "quasigroup" ++ "(" ++ "x" ++ ")";
loop_MObj = "loop" ++ "(" ++ "x" ++ ")";
finite_MObjProp = "finite" ++ "(" ++ "x" ++ ")";
empty_MObjProp = "empty" ++ "(" ++ "x" ++ ")";
even_MObjProp = "even" ++ "(" ++ "x" ++ ")";
positive_MObjProp = "positive" ++ "(" ++ "x" ++ ")";
prime_MObjProp = "prime" ++ "(" ++ "x" ++ ")";
unital_MObjProp = "unital" ++ "(" ++ "x" ++ ")";
}
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment