Commit a825c1b4 authored by jfschaefer's avatar jfschaefer
Browse files

work-in-progress: Rework MObj. TODO: Figure out definite noun phrases

parent 17d4de27
......@@ -10,7 +10,7 @@ abstract FGrammar = MCats ** {
fstatement_to_statement : FStatement -> Statement;
fcomplexidentifier_to_mathcn : FComplexIdentifier -> MathCN; -- mi ( n ) => $ mi ( cn )
fexpr_fbinrel_fcid_fbinrel_fexpr_to_mathcn : -- introduces one identifier (like in 1 < n < 10)
FExpression -> FBinRelation -> FComplexIdentifier -> FBinRelation -> FExpression -> MathCN;
fcomplexidentifier_to_identifer : FComplexIdentifier -> Identifier; -- mi ( n ) => $ mi ( cn ) $
fexpr_fbinrel_fcid_fbinrel_fexpr_to_identifier : -- introduces one identifier (like in 1 < n < 10)
FExpression -> FBinRelation -> FComplexIdentifier -> FBinRelation -> FExpression -> Identifier;
}
......@@ -17,7 +17,8 @@ concrete FGrammarEng of FGrammar = MCatsEng, CatEng ** open ParadigmsEng, ResEng
_ => table { _ => table { _ => "???" } } };
_ => table { _ => table { _ => table { _ => "???" } } } } };
fcomplexidentifier_to_mathcn fci = mkMathCN_sg ("$" ++ fci ++ "$");
fexpr_fbinrel_fcid_fbinrel_fexpr_to_mathcn a r1 b r2 c =
mkMathCN_sg ("$" ++ (wrap_mml "mrow" (a ++ (wrap_mml "mo" r1) ++ b ++ (wrap_mml "mo" r2) ++ c)) ++ "$");
fcomplexidentifier_to_identifer fci = { s = "$" ++ fci ++ "$" }; -- mkMathCN_sg ("$" ++ fci ++ "$");
fexpr_fbinrel_fcid_fbinrel_fexpr_to_identifier a r1 b r2 c =
{ s = "$" ++ (wrap_mml "mrow" (a ++ (wrap_mml "mo" r1) ++ b ++ (wrap_mml "mo" r2) ++ c)) ++ "$" };
-- mkMathCN_sg ("$" ++ (wrap_mml "mrow" (a ++ (wrap_mml "mo" r1) ++ b ++ (wrap_mml "mo" r2) ++ c)) ++ "$");
}
......@@ -24,4 +24,5 @@ abstract MCats = {
FStatement; -- statement
MathCN; -- math common noun (e.g. $ mo ( n ) $)
Identifier; -- identifier (more restricted than MathCN)
}
concrete MCatsEng of MCats = open SyntaxEng in {
concrete MCatsEng of MCats = open SyntaxEng, ParamX in {
param
boolean = true | false;
lincat
-- natural language
PosNegPol = Pol;
DefMObj = NP;
MObj = CN;
MObj = {
core : CN; -- core of the declaration (e.g. "continuous function")
suffix : Number => Str; -- suffix (usually starting with a preposition, e.g. "on the real numbers") (number required for relative clauses)
prep1 : Str; -- preposition 1 (e.g. StrSome("from"))
prep2 : Str; -- preposition 2 (e.g. StrSom("to"))
hasp1 : boolean;
hasp2 : boolean;
};
MObjProp = AP;
Statement = Cl;
-- statement as sentence or relative sentence ("such that ...")
......@@ -22,4 +33,5 @@ concrete MCatsEng of MCats = open SyntaxEng in {
FStatement = Str;
MathCN = CN;
Identifier = { s : Str };
}
......@@ -4,26 +4,27 @@ abstract NGrammar = MCats, Grammar, Extra, ExtraEngAbs ** {
PosPol : PosNegPol;
NegPol : PosNegPol;
no_identifier : Identifier;
restrict_mobj : MObjProp -> MObj -> MObj; -- "even" -> "integer" -> "even integer"
mobj_such_that : MObj -> StatementFin -> MObj; -- "integer such that ..."
def_descr_mobj : MObj -> DefMObj; -- "cube" -> "the cube"
appo_mobj : MObj -> MathCN -> MObj; -- "an integer $ mi ( n ) $
it_pron_defmobj : DefMObj; -- "it"
exists_statement : MObj -> Statement; -- "integer" -> "there is an integer"
not_exists_statement : MObj -> Statement; -- "integer" -> "there is no integer"
eq_defmobj_defmobj : DefMObj -> DefMObj -> Statement; -- "the largest element is the maximum"
-- def_descr_mobj : MObj -> DefMObj; -- "cube" -> "the cube"
-- appo_mobj : MObj -> MathCN -> MObj; -- "an integer $ mi ( n ) $
-- it_pron_defmobj : DefMObj; -- "it"
--
exists_statement : MObj -> Identifier -> Statement; -- "integer" -> "there is an integer"
not_exists_statement : MObj -> Identifier -> Statement; -- "integer" -> "there is no integer"
-- eq_defmobj_defmobj : DefMObj -> DefMObj -> Statement; -- "the largest element is the maximum"
--
state : Statement -> PosNegPol -> StatementFin;
iff_statementfin : StatementFin -> StatementFin -> StatementFin;
and_statementfin : StatementFin -> StatementFin -> StatementFin;
or_statementfin : StatementFin -> StatementFin -> StatementFin;
def_defmobj_defmobj : DefMObj -> DefMObj -> Statement; -- "the empty set is the set without elements"
-- iff_statementfin : StatementFin -> StatementFin -> StatementFin;
-- and_statementfin : StatementFin -> StatementFin -> StatementFin;
-- or_statementfin : StatementFin -> StatementFin -> StatementFin;
-- def_defmobj_defmobj : DefMObj -> DefMObj -> Statement; -- "the empty set is the set without elements"
def_mobj_mobjprop : MObj -> MObjProp -> Definition; -- "an integer is called prime"
def_mobj_mobjprop : MObj -> Identifier -> MObjProp -> Definition; -- "an integer is called prime"
iff_definition : Definition -> StatementFin -> Definition; -- "... is called ... iff ..."
def_appo_is_mobj : MObj -> MathCN -> MObj -> Definition; -- "an alphabet $A$ is a finite set
def_mobj_is_mobj : MObj -> MObj -> Definition; -- "an alphabet $A$ is a finite set
utter_statement : StatementFin -> Utterance; -- essentially identity
utter_definition : Definition -> Utterance; -- essentially identity
......
concrete NGrammarEng of NGrammar = MCatsEng, GrammarEng, ExtraEng ** open SyntaxEng, ParadigmsEng in {
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;
lin
PosPol = GrammarEng.PPos;
NegPol = GrammarEng.PNeg;
no_identifier = { s = ""};
restrict_mobj prop obj = mkCN prop obj;
def_descr_mobj obj = mkNP the_Art obj;
mobj_such_that obj restr = mkCN obj restr.rs; -- (mkRS pol (mkRCl restr));
appo_mobj obj mcn = lin CN { s = \\number,case_ => obj.s ! number ! case_ ++ mcn.s ! number ! case_; g = obj.g };
it_pron_defmobj = mkNP it_Pron;
exists_statement obj = mkCl obj | ExistsNP (mkNP aSg_Det obj);
not_exists_statement obj = mkCl (mkNP no_Quant obj) | ExistsNP (mkNP no_Quant obj);
eq_defmobj_defmobj a b = mkCl a b;
restrict_mobj prop obj = mobjPrepMObjProp obj prop;
mobj_such_that obj restr = mobjAddSuffix obj restr.rs;
-- def_descr_mobj obj = mkNP the_Art obj;
-- appo_mobj obj mcn = lin CN { s = \\number,case_ => obj.s ! number ! case_ ++ mcn.s ! number ! case_; g = obj.g };
-- it_pron_defmobj = mkNP it_Pron;
--
exists_statement obj id = mkCl (DetCN aSg_Det (mobjToCN obj id)) | ExistsNP (DetCN aSg_Det (mobjToCN obj id)); -- ExistsNP (mkNP aSg_Det obj);
not_exists_statement obj id = mkCl (DetCN (DetQuant no_Quant NumSg) (mobjToCN obj id)) |
ExistsNP (DetCN (DetQuant no_Quant NumSg) (mobjToCN obj id));
-- eq_defmobj_defmobj a b = mkCl a b;
--
state stmt pol = { s = mkS pol stmt; rs = mkRS pol (mkRCl stmt) };
iff_statementfin a b = { s = mkS (mkConj "iff") a.s b.s; rs = mkRS (mkConj "iff") a.rs b.rs };
and_statementfin a b = { s = mkS (mkConj "and") a.s b.s; rs = mkRS (mkConj "and") a.rs b.rs };
or_statementfin a b = { s = mkS (mkConj "or") a.s b.s; rs = mkRS (mkConj "or") a.rs b.rs };
def_mobj_mobjprop obj prop = mkS (mkCl
(mkNP aSg_Det obj)
-- iff_statementfin a b = { s = mkS (mkConj "iff") a.s b.s; rs = mkRS (mkConj "iff") a.rs b.rs };
-- and_statementfin a b = { s = mkS (mkConj "and") a.s b.s; rs = mkRS (mkConj "and") a.rs b.rs };
-- or_statementfin a b = { s = mkS (mkConj "or") a.s b.s; rs = mkRS (mkConj "or") a.rs b.rs };
--
def_mobj_mobjprop obj id prop = mkS (mkCl
(DetCN aSg_Det (mobjToCN obj id)) -- (mkNP aSg_Det (mobjToCN obj))
(PastPartAP (mkVPSlash (mkV2A (mkV "call" "calls" "called" "called" "calling") noPrep) prop)));
-- iff_definition defi condition = lin S { s = "iff" }; -- better solution for this?
-- -- 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_appo_is_mobj definiendum representative definiens =
mkS (mkCl (DetCN {- mkNP is for some reason ambiguous -}
aSg_Det (appo_mobj definiendum representative)) definiens);
-- def_defmobj_defmobj a b = mkCl a b;
def_mobj_is_mobj definiendum definiens =
mkS (mkCl (DetCN aSg_Det (mobjToCN definiendum)) (mobjToCN definiens));
-- mkS (mkCl (DetCN {- mkNP is for some reason ambiguous -}
-- aSg_Det (appo_mobj definiendum representative)) definiens);
--
utter_statement s = mkUtt s.s;
utter_definition s = mkUtt s;
--
--
-- copied from ExtendEng.gf
PastPartAP vp = {
s = \\a => vp.ad ! a ++ vp.ptp ++ vp.p ++ vp.c2 ++ vp.s2 ! a ++ vp.ext ;
......
-- natural language lexicon
abstract NLexicon = MCats, NLexiconMObj ** {
abstract NLexicon = MCats, NLexiconMObj, Cat ** {
fun
-- integer_MObj : MObj;
-- set_MObj : MObj;
......
......@@ -3,609 +3,615 @@
-- The machine learning algorithm is still under development and more refined and more complete results can be expected.
-- Currently all nouns are of type MObj. This shouldn't be the case, as e.g. optimality does not represent a mathematical object.
-- NOTE: IRREGULAR NOUNS ARE NOT HANDLED PROPERLY (consider e.g. "vertex" (pl. "vertices"))
concrete NLexiconMObjEng of NLexiconMObj = MCatsEng ** open SyntaxEng, ParadigmsEng in {
concrete NLexiconMObjEng of NLexiconMObj = MCatsEng ** open SyntaxEng, ParadigmsEng, UtilsEng in {
-- oper
-- mkMObj : N -> MObj = \noun -> let obj : CN = mkCN noun in
-- lin MObj {
-- with_id = lin CN { s = \\number,case_ => obj.s ! number ! case_ ++ mcn.s ! number ! case_; g = obj.g };
-- simple = obj
-- };
lin
set_MObj = mkCN (mkN "set");
function_MObj = mkCN (mkN "function");
case_MObj = mkCN (mkN "case");
space_MObj = mkCN (mkN "space");
form_MObj = mkCN (mkN "form");
point_MObj = mkCN (mkN "point");
group_MObj = mkCN (mkN "group");
result_MObj = mkCN (mkN "result");
sequence_MObj = mkCN (mkN "sequence");
operator_MObj = mkCN (mkN "operator");
map_MObj = mkCN (mkN "map");
number_MObj = mkCN (mkN "number");
algebra_MObj = mkCN (mkN "algebra");
solution_MObj = mkCN (mkN "solution");
constant_MObj = mkCN (mkN "constant");
vector_MObj = mkCN (mkN "vector");
measure_MObj = mkCN (mkN "measure");
system_MObj = mkCN (mkN "system");
time_MObj = mkCN (mkN "time");
matrix_MObj = mkCN (mkN "matrix");
metric_MObj = mkCN (mkN "metric");
class_MObj = mkCN (mkN "class");
product_MObj = mkCN (mkN "product");
field_MObj = mkCN (mkN "field");
graph_MObj = mkCN (mkN "graph");
structure_MObj = mkCN (mkN "structure");
element_MObj = mkCN (mkN "element");
polynomial_MObj = mkCN (mkN "polynomial");
boundary_MObj = mkCN (mkN "boundary");
subset_MObj = mkCN (mkN "subset");
probability_MObj = mkCN (mkN "probability");
manifold_MObj = mkCN (mkN "manifold");
state_MObj = mkCN (mkN "state");
family_MObj = mkCN (mkN "family");
basis_MObj = mkCN (mkN "basis");
action_MObj = mkCN (mkN "action");
limit_MObj = mkCN (mkN "limit");
value_MObj = mkCN (mkN "value");
representation_MObj = mkCN (mkN "representation");
way_MObj = mkCN (mkN "way");
vertex_MObj = mkCN (mkN "vertex");
process_MObj = mkCN (mkN "process");
norm_MObj = mkCN (mkN "norm");
integer_MObj = mkCN (mkN "integer");
model_MObj = mkCN (mkN "model");
existence_MObj = mkCN (mkN "existence");
sum_MObj = mkCN (mkN "sum");
term_MObj = mkCN (mkN "term");
relation_MObj = mkCN (mkN "relation");
integral_MObj = mkCN (mkN "integral");
sense_MObj = mkCN (mkN "sense");
curvature_MObj = mkCN (mkN "curvature");
bundle_MObj = mkCN (mkN "bundle");
distribution_MObj = mkCN (mkN "distribution");
ideal_MObj = mkCN (mkN "ideal");
curve_MObj = mkCN (mkN "curve");
pair_MObj = mkCN (mkN "pair");
domain_MObj = mkCN (mkN "domain");
subgroup_MObj = mkCN (mkN "subgroup");
identity_MObj = mkCN (mkN "identity");
surface_MObj = mkCN (mkN "surface");
edge_MObj = mkCN (mkN "edge");
construction_MObj = mkCN (mkN "construction");
line_MObj = mkCN (mkN "line");
notation_MObj = mkCN (mkN "notation");
algorithm_MObj = mkCN (mkN "algorithm");
component_MObj = mkCN (mkN "component");
extension_MObj = mkCN (mkN "extension");
decomposition_MObj = mkCN (mkN "decomposition");
subspace_MObj = mkCN (mkN "subspace");
isomorphism_MObj = mkCN (mkN "isomorphism");
method_MObj = mkCN (mkN "method");
index_MObj = mkCN (mkN "index");
statement_MObj = mkCN (mkN "statement");
choice_MObj = mkCN (mkN "choice");
projection_MObj = mkCN (mkN "projection");
mapping_MObj = mkCN (mkN "mapping");
variable_MObj = mkCN (mkN "variable");
distance_MObj = mkCN (mkN "distance");
interval_MObj = mkCN (mkN "interval");
setting_MObj = mkCN (mkN "setting");
parameter_MObj = mkCN (mkN "parameter");
series_MObj = mkCN (mkN "series");
weight_MObj = mkCN (mkN "weight");
path_MObj = mkCN (mkN "path");
neighborhood_MObj = mkCN (mkN "neighborhood");
density_MObj = mkCN (mkN "density");
equivalence_MObj = mkCN (mkN "equivalence");
flow_MObj = mkCN (mkN "flow");
image_MObj = mkCN (mkN "image");
energy_MObj = mkCN (mkN "energy");
factor_MObj = mkCN (mkN "factor");
contradiction_MObj = mkCN (mkN "contradiction");
kernel_MObj = mkCN (mkN "kernel");
ring_MObj = mkCN (mkN "ring");
tensor_MObj = mkCN (mkN "tensor");
connection_MObj = mkCN (mkN "connection");
geodesic_MObj = mkCN (mkN "geodesic");
consequence_MObj = mkCN (mkN "consequence");
restriction_MObj = mkCN (mkN "restriction");
lattice_MObj = mkCN (mkN "lattice");
inverse_MObj = mkCN (mkN "inverse");
intersection_MObj = mkCN (mkN "intersection");
partition_MObj = mkCN (mkN "partition");
union_MObj = mkCN (mkN "union");
plane_MObj = mkCN (mkN "plane");
ball_MObj = mkCN (mkN "ball");
expression_MObj = mkCN (mkN "expression");
orbit_MObj = mkCN (mkN "orbit");
tree_MObj = mkCN (mkN "tree");
root_MObj = mkCN (mkN "root");
derivative_MObj = mkCN (mkN "derivative");
hamiltonian_MObj = mkCN (mkN "hamiltonian");
entropy_MObj = mkCN (mkN "entropy");
approximation_MObj = mkCN (mkN "approximation");
semigroup_MObj = mkCN (mkN "semigroup");
power_MObj = mkCN (mkN "power");
change_MObj = mkCN (mkN "change");
quotient_MObj = mkCN (mkN "quotient");
embedding_MObj = mkCN (mkN "embedding");
base_MObj = mkCN (mkN "base");
chain_MObj = mkCN (mkN "chain");
transformation_MObj = mkCN (mkN "transformation");
cone_MObj = mkCN (mkN "cone");
homomorphism_MObj = mkCN (mkN "homomorphism");
difference_MObj = mkCN (mkN "difference");
expansion_MObj = mkCN (mkN "expansion");
symmetry_MObj = mkCN (mkN "symmetry");
closure_MObj = mkCN (mkN "closure");
eigenvalue_MObj = mkCN (mkN "eigenvalue");
potential_MObj = mkCN (mkN "potential");
direction_MObj = mkCN (mkN "direction");
automorphism_MObj = mkCN (mkN "automorphism");
spectrum_MObj = mkCN (mkN "spectrum");
variety_MObj = mkCN (mkN "variety");
volume_MObj = mkCN (mkN "volume");
regularity_MObj = mkCN (mkN "regularity");
computation_MObj = mkCN (mkN "computation");
rate_MObj = mkCN (mkN "rate");
context_MObj = mkCN (mkN "context");
collection_MObj = mkCN (mkN "collection");
multiplication_MObj = mkCN (mkN "multiplication");
minimum_MObj = mkCN (mkN "minimum");
word_MObj = mkCN (mkN "word");
sphere_MObj = mkCN (mkN "sphere");
error_MObj = mkCN (mkN "error");
block_MObj = mkCN (mkN "block");
permutation_MObj = mkCN (mkN "permutation");
situation_MObj = mkCN (mkN "situation");
trace_MObj = mkCN (mkN "trace");
cohomology_MObj = mkCN (mkN "cohomology");
range_MObj = mkCN (mkN "range");
morphism_MObj = mkCN (mkN "morphism");
position_MObj = mkCN (mkN "position");
stability_MObj = mkCN (mkN "stability");
category_MObj = mkCN (mkN "category");
cycle_MObj = mkCN (mkN "cycle");
torus_MObj = mkCN (mkN "torus");
subsequence_MObj = mkCN (mkN "subsequence");
application_MObj = mkCN (mkN "application");
coefficient_MObj = mkCN (mkN "coefficient");
origin_MObj = mkCN (mkN "origin");
operation_MObj = mkCN (mkN "operation");
column_MObj = mkCN (mkN "column");
interior_MObj = mkCN (mkN "interior");
mass_MObj = mkCN (mkN "mass");
subalgebra_MObj = mkCN (mkN "subalgebra");
inclusion_MObj = mkCN (mkN "inclusion");
covering_MObj = mkCN (mkN "covering");
frame_MObj = mkCN (mkN "frame");
reduction_MObj = mkCN (mkN "reduction");
description_MObj = mkCN (mkN "description");
strategy_MObj = mkCN (mkN "strategy");
game_MObj = mkCN (mkN "game");
circle_MObj = mkCN (mkN "circle");
arc_MObj = mkCN (mkN "arc");
discussion_MObj = mkCN (mkN "discussion");
triple_MObj = mkCN (mkN "triple");
complexity_MObj = mkCN (mkN "complexity");
evolution_MObj = mkCN (mkN "evolution");
diagram_MObj = mkCN (mkN "diagram");
composition_MObj = mkCN (mkN "composition");
generalization_MObj = mkCN (mkN "generalization");
symbol_MObj = mkCN (mkN "symbol");
fiber_MObj = mkCN (mkN "fiber");
observation_MObj = mkCN (mkN "observation");
role_MObj = mkCN (mkN "role");
generator_MObj = mkCN (mkN "generator");
center_MObj = mkCN (mkN "center");
growth_MObj = mkCN (mkN "growth");
isometry_MObj = mkCN (mkN "isometry");
complement_MObj = mkCN (mkN "complement");
combination_MObj = mkCN (mkN "combination");
triangle_MObj = mkCN (mkN "triangle");
variation_MObj = mkCN (mkN "variation");
node_MObj = mkCN (mkN "node");
divisor_MObj = mkCN (mkN "divisor");
input_MObj = mkCN (mkN "input");
scale_MObj = mkCN (mkN "scale");
equilibrium_MObj = mkCN (mkN "equilibrium");
region_MObj = mkCN (mkN "region");
character_MObj = mkCN (mkN "character");
characterization_MObj = mkCN (mkN "characterization");
moment_MObj = mkCN (mkN "moment");
rest_MObj = mkCN (mkN "rest");
translation_MObj = mkCN (mkN "translation");
sign_MObj = mkCN (mkN "sign");
segment_MObj = mkCN (mkN "segment");
disk_MObj = mkCN (mkN "disk");
link_MObj = mkCN (mkN "link");
framework_MObj = mkCN (mkN "framework");
concept_MObj = mkCN (mkN "concept");
bracket_MObj = mkCN (mkN "bracket");
classification_MObj = mkCN (mkN "classification");
constraint_MObj = mkCN (mkN "constraint");
kind_MObj = mkCN (mkN "kind");
expectation_MObj = mkCN (mkN "expectation");
splitting_MObj = mkCN (mkN "splitting");
exponent_MObj = mkCN (mkN "exponent");
cocycle_MObj = mkCN (mkN "cocycle");
area_MObj = mkCN (mkN "area");
homology_MObj = mkCN (mkN "homology");
martingale_MObj = mkCN (mkN "martingale");
gradient_MObj = mkCN (mkN "gradient");
period_MObj = mkCN (mkN "period");
submanifold_MObj = mkCN (mkN "submanifold");
configuration_MObj = mkCN (mkN "configuration");
comparison_MObj = mkCN (mkN "comparison");
diffeomorphism_MObj = mkCN (mkN "diffeomorphism");
loop_MObj = mkCN (mkN "loop");
output_MObj = mkCN (mkN "output");
cell_MObj = mkCN (mkN "cell");
homeomorphism_MObj = mkCN (mkN "homeomorphism");
decay_MObj = mkCN (mkN "decay");
average_MObj = mkCN (mkN "average");
shift_MObj = mkCN (mkN "shift");
angle_MObj = mkCN (mkN "angle");
contraction_MObj = mkCN (mkN "contraction");
object_MObj = mkCN (mkN "object");
list_MObj = mkCN (mkN "list");
duality_MObj = mkCN (mkN "duality");
face_MObj = mkCN (mkN "face");
quantity_MObj = mkCN (mkN "quantity");
compactness_MObj = mkCN (mkN "compactness");
goal_MObj = mkCN (mkN "goal");
invariance_MObj = mkCN (mkN "invariance");
cost_MObj = mkCN (mkN "cost");
ordering_MObj = mkCN (mkN "ordering");
singularity_MObj = mkCN (mkN "singularity");
laplacian_MObj = mkCN (mkN "laplacian");
network_MObj = mkCN (mkN "network");
deformation_MObj = mkCN (mkN "deformation");
noise_MObj = mkCN (mkN "noise");
measurement_MObj = mkCN (mkN "measurement");
foliation_MObj = mkCN (mkN "foliation");
neighbourhood_MObj = mkCN (mkN "neighbourhood");
derivation_MObj = mkCN (mkN "derivation");
reference_MObj = mkCN (mkN "reference");
hypersurface_MObj = mkCN (mkN "hypersurface");
walk_MObj = mkCN (mkN "walk");
aim_MObj = mkCN (mkN "aim");
converse_MObj = mkCN (mkN "converse");
net_MObj = mkCN (mkN "net");
lift_MObj = mkCN (mkN "lift");
coloring_MObj = mkCN (mkN "coloring");
orientation_MObj = mkCN (mkN "orientation");
determinant_MObj = mkCN (mkN "determinant");
gap_MObj = mkCN (mkN "gap");
language_MObj = mkCN (mkN "language");
leaf_MObj = mkCN (mkN "leaf");
bijection_MObj = mkCN (mkN "bijection");
event_MObj = mkCN (mkN "event");
ratio_MObj = mkCN (mkN "ratio");
dependence_MObj = mkCN (mkN "dependence");
polytope_MObj = mkCN (mkN "polytope");
copy_MObj = mkCN (mkN "copy");
reflection_MObj = mkCN (mkN "reflection");
interpretation_MObj = mkCN (mkN "interpretation");
filtration_MObj = mkCN (mkN "filtration");
knot_MObj = mkCN (mkN "knot");
orbifold_MObj = mkCN (mkN "orbifold");
resolution_MObj = mkCN (mkN "resolution");
height_MObj = mkCN (mkN "height");
effect_MObj = mkCN (mkN "effect");
factorization_MObj = mkCN (mkN "factorization");
sheaf_MObj = mkCN (mkN "sheaf");
attractor_MObj = mkCN (mkN "attractor");
particle_MObj = mkCN (mkN "particle");
branch_MObj = mkCN (mkN "branch");
bit_MObj = mkCN (mkN "bit");
protocol_MObj = mkCN (mkN "protocol");
crossing_MObj = mkCN (mkN "crossing");
source_MObj = mkCN (mkN "source");
string_MObj = mkCN (mkN "string");
perturbation_MObj = mkCN (mkN "perturbation");
search_MObj = mkCN (mkN "search");
logic_MObj = mkCN (mkN "logic");
sample_MObj = mkCN (mkN "sample");
frequency_MObj = mkCN (mkN "frequency");
supremum_MObj = mkCN (mkN "supremum");
circuit_MObj = mkCN (mkN "circuit");
functor_MObj = mkCN (mkN "functor");
velocity_MObj = mkCN (mkN "velocity");
iteration_MObj = mkCN (mkN "iteration");
rotation_MObj = mkCN (mkN "rotation");
cube_MObj = mkCN (mkN "cube");
sequel_MObj = mkCN (mkN "sequel");
program_MObj = mkCN (mkN "program");
disc_MObj = mkCN (mkN "disc");
interaction_MObj = mkCN (mkN "interaction");
immersion_MObj = mkCN (mkN "immersion");
signature_MObj = mkCN (mkN "signature");
hyperplane_MObj = mkCN (mkN "hyperplane");
grading_MObj = mkCN (mkN "grading");
body_MObj = mkCN (mkN "body");
speed_MObj = mkCN (mkN "speed");
independence_MObj = mkCN (mkN "independence");
hull_MObj = mkCN (mkN "hull");
price_MObj = mkCN (mkN "price");
valuation_MObj = mkCN (mkN "valuation");
divergence_MObj = mkCN (mkN "divergence");
box_MObj = mkCN (mkN "box");
monotonicity_MObj = mkCN (mkN "monotonicity");
endomorphism_MObj = mkCN (mkN "endomorphism");
subgraph_MObj = mkCN (mkN "subgraph");
contribution_MObj = mkCN (mkN "contribution");
identification_MObj = mkCN (mkN "identification");
soliton_MObj = mkCN (mkN "soliton");
momentum_MObj = mkCN (mkN "momentum");
terminology_MObj = mkCN (mkN "terminology");
spacetime_MObj = mkCN (mkN "spacetime");
simplex_MObj = mkCN (mkN "simplex");
requirement_MObj = mkCN (mkN "requirement");
convolution_MObj = mkCN (mkN "convolution");
core_MObj = mkCN (mkN "core");
pole_MObj = mkCN (mkN "pole");
design_MObj = mkCN (mkN "design");
cluster_MObj = mkCN (mkN "cluster");
variance_MObj = mkCN (mkN "variance");
fraction_MObj = mkCN (mkN "fraction");
channel_MObj = mkCN (mkN "channel");
cardinal_MObj = mkCN (mkN "cardinal");
stabilizer_MObj = mkCN (mkN "stabilizer");
relationship_MObj = mkCN (mkN "relationship");
filter_MObj = mkCN (mkN "filter");
axiom_MObj = mkCN (mkN "axiom");
resolvent_MObj = mkCN (mkN "resolvent");
boundedness_MObj = mkCN (mkN "boundedness");
pattern_MObj = mkCN (mkN "pattern");
cylinder_MObj = mkCN (mkN "cylinder");
positivity_MObj = mkCN (mkN "positivity");
chart_MObj = mkCN (mkN "chart");
locus_MObj = mkCN (mkN "locus");
memory_MObj = mkCN (mkN "memory");
coupling_MObj = mkCN (mkN "coupling");
jump_MObj = mkCN (mkN "jump");
summand_MObj = mkCN (mkN "summand");
evaluation_MObj = mkCN (mkN "evaluation");
shape_MObj = mkCN (mkN "shape");
remainder_MObj = mkCN (mkN "remainder");
normalization_MObj = mkCN (mkN "normalization");
parity_MObj = mkCN (mkN "parity");
behaviour_MObj = mkCN (mkN "behaviour");
communication_MObj = mkCN (mkN "communication");
machine_MObj = mkCN (mkN "machine");
tiling_MObj = mkCN (mkN "tiling");
slice_MObj = mkCN (mkN "slice");
agent_MObj = mkCN (mkN "agent");
braid_MObj = mkCN (mkN "braid");
clique_MObj = mkCN (mkN "clique");
contrary_MObj = mkCN (mkN "contrary");
hierarchy_MObj = mkCN (mkN "hierarchy");
representative_MObj = mkCN (mkN "representative");
integrability_MObj = mkCN (mkN "integrability");
annulus_MObj = mkCN (mkN "annulus");
modification_MObj = mkCN (mkN "modification");
letter_MObj = mkCN (mkN "letter");
query_MObj = mkCN (mkN "query");
implication_MObj = mkCN (mkN "implication");
observable_MObj = mkCN (mkN "observable");
trajectory_MObj = mkCN (mkN "trajectory");
difficulty_MObj = mkCN (mkN "difficulty");
substitution_MObj = mkCN (mkN "substitution");
message_MObj = mkCN (mkN "message");
localization_MObj = mkCN (mkN "localization");
poset_MObj = mkCN (mkN "poset");
dilation_MObj = mkCN (mkN "dilation");
matter_MObj = mkCN (mkN "matter");
ordinal_MObj = mkCN (mkN "ordinal");
book_MObj = mkCN (mkN "book");
fibration_MObj = mkCN (mkN "fibration");
flag_MObj = mkCN (mkN "flag");
presence_MObj = mkCN (mkN "presence");
summation_MObj = mkCN (mkN "summation");
front_MObj = mkCN (mkN "front");
pressure_MObj = mkCN (mkN "pressure");
endpoint_MObj = mkCN (mkN "endpoint");
infimum_MObj = mkCN (mkN "infimum");
assignment_MObj = mkCN (mkN "assignment");
ultrafilter_MObj = mkCN (mkN "ultrafilter");
ray_MObj = mkCN (mkN "ray");
pairing_MObj = mkCN (mkN "pairing");
groupoid_MObj = mkCN (mkN "groupoid");
smoothness_MObj = mkCN (mkN "smoothness");
macaulay_MObj = mkCN (mkN "macaulay");
idempotent_MObj = mkCN (mkN "idempotent");
estimation_MObj = mkCN (mkN "estimation");
continuation_MObj = mkCN (mkN "continuation");
variant_MObj = mkCN (mkN "variant");
background_MObj = mkCN (mkN "background");
amount_MObj = mkCN (mkN "amount");
issue_MObj = mkCN (mkN "issue");
former_MObj = mkCN (mkN "former");
minimizer_MObj = mkCN (mkN "minimizer");
parametrization_MObj = mkCN (mkN "parametrization");
commutator_MObj = mkCN (mkN "commutator");
outcome_MObj = mkCN (mkN "outcome");
utility_MObj = mkCN (mkN "utility");
multiplier_MObj = mkCN (mkN "multiplier");
grid_MObj = mkCN (mkN "grid");
alphabet_MObj = mkCN (mkN "alphabet");
fluid_MObj = mkCN (mkN "fluid");
cusp_MObj = mkCN (mkN "cusp");
occurrence_MObj = mkCN (mkN "occurrence");
objective_MObj = mkCN (mkN "objective");
eigenvector_MObj = mkCN (mkN "eigenvector");
atom_MObj = mkCN (mkN "atom");
pde_MObj = mkCN (mkN "pde");
profile_MObj = mkCN (mkN "profile");
eigenfunction_MObj = mkCN (mkN "eigenfunction");
content_MObj = mkCN (mkN "content");
coset_MObj = mkCN (mkN "coset");
bottom_MObj = mkCN (mkN "bottom");
encoding_MObj = mkCN (mkN "encoding");
realization_MObj = mkCN (mkN "realization");
matroid_MObj = mkCN (mkN "matroid");
monoid_MObj = mkCN (mkN "monoid");
congruence_MObj = mkCN (mkN "congruence");
task_MObj = mkCN (mkN "task");