diff options
| author | adelon <22380201+adelon@users.noreply.github.com> | 2025-11-27 21:30:27 +0100 |
|---|---|---|
| committer | adelon <22380201+adelon@users.noreply.github.com> | 2025-11-27 21:30:27 +0100 |
| commit | 747d95463850a2c95e8bb7b1669cc188fe1d0743 (patch) | |
| tree | 58248d1149148592b4465ed229dda7473b79fbfa | |
| parent | aa760e1989ccc2c7e45b6a3f111e5d5d3bc713b3 (diff) | |
Add basic parameter handling for relators
25 files changed, 396 insertions, 243 deletions
diff --git a/source/Meaning.hs b/source/Meaning.hs index 3721b0e..7e0e070 100644 --- a/source/Meaning.hs +++ b/source/Meaning.hs @@ -217,39 +217,37 @@ glossChain :: Sem.Chain -> Gloss (Sem.ExprOf VarSymbol) glossChain ch = Sem.makeConjunction <$> makeRels (conjuncts (splat ch)) where -- | Separate each link of the chain into separate triples. - splat :: Raw.Chain -> [(NonEmpty Raw.Expr, Sign, Raw.Relation, [Raw.Expr], NonEmpty Raw.Expr)] + splat :: Raw.Chain -> [(NonEmpty Raw.Expr, Sign, Raw.Relation, NonEmpty Raw.Expr)] splat = \case - Raw.ChainBase es sign rel params es' - -> [(es, sign, rel, params, es')] - Raw.ChainCons es sign rel params ch'@(Raw.ChainBase es' _ _ _ _) - -> (es, sign, rel, params, es') : splat ch' - Raw.ChainCons es sign rel params ch'@(Raw.ChainCons es' _ _ _ _) - -> (es, sign, rel, params, es') : splat ch' + Raw.ChainBase es sign rel es' + -> [(es, sign, rel, es')] + Raw.ChainCons es sign rel ch'@(Raw.ChainBase es' _ _ _) + -> (es, sign, rel, es') : splat ch' + Raw.ChainCons es sign rel ch'@(Raw.ChainCons es' _ _ _) + -> (es, sign, rel, es') : splat ch' -- | Take each triple and combine the lhs/rhs to make all the conjuncts. - conjuncts :: [(NonEmpty Raw.Expr, Sign, Raw.Relation, [Raw.Expr], NonEmpty Raw.Expr)] -> [(Sign, Raw.Relation, [Raw.Expr], Raw.Expr, Raw.Expr)] + conjuncts :: [(NonEmpty Raw.Expr, Sign, Raw.Relation, NonEmpty Raw.Expr)] -> [(Sign, Raw.Relation, Raw.Expr, Raw.Expr)] conjuncts triples = do - (e1s, sign, rel, params, e2s) <- triples + (e1s, sign, rel, e2s) <- triples e1 <- toList e1s e2 <- toList e2s - pure (sign, rel, params, e1, e2) + pure (sign, rel, e1, e2) - makeRels :: [(Sign, Raw.Relation, [Raw.Expr], Raw.Expr, Raw.Expr)] -> Gloss [Sem.Formula] + makeRels :: [(Sign, Raw.Relation, Raw.Expr, Raw.Expr)] -> Gloss [Sem.Formula] makeRels triples = for triples makeRel - makeRel :: (Sign, Raw.Relation, [Raw.Expr], Raw.Expr, Raw.Expr) -> Gloss Sem.Formula - makeRel (sign, rel, params, e1, e2) = do + makeRel :: (Sign, Raw.Relation, Raw.Expr, Raw.Expr) -> Gloss Sem.Formula + makeRel (sign, rel, e1, e2) = do e1' <- glossExpr e1 e2' <- glossExpr e2 - params' <- glossExpr `each` params case rel of - Raw.RelationSymbol tok -> + Raw.RelationSymbol tok params -> do + params' <- glossExpr `each` params pure $ sign' $ Sem.Relation tok (params' <> [e1',e2']) - Raw.RelationExpr e -> case params of - [] -> do + Raw.RelationExpr e -> do e' <- glossExpr e pure (sign' (Sem.TermPair e1' e2' `Sem.IsElementOf` e')) - _ -> throwError GlossRelationExprWithParams where sign' = case sign of Positive -> id @@ -461,9 +459,10 @@ glossBound = \case Positive -> id Negative -> Sem.Not bound <- case rel of - Raw.RelationSymbol rel' -> + Raw.RelationSymbol rel' params -> do + params' <- glossExpr `each` params pure $ \v -> sign' $ - Sem.Relation rel' (Sem.TermVar v : [term']) + Sem.Relation rel' (params' <> [Sem.TermVar v, term']) Raw.RelationExpr e -> do e' <- glossExpr e pure $ \v -> sign' $ diff --git a/source/Syntax/Abstract.hs b/source/Syntax/Abstract.hs index 31a1029..ebbf9e9 100644 --- a/source/Syntax/Abstract.hs +++ b/source/Syntax/Abstract.hs @@ -92,12 +92,12 @@ makeTuple = foldr1 ExprPair data Chain - = ChainBase (NonEmpty Expr) Sign Relation [Expr] (NonEmpty Expr) -- left arguments, possibly empty list of parameters, right arguments - | ChainCons (NonEmpty Expr) Sign Relation [Expr] Chain + = ChainBase (NonEmpty Expr) Sign Relation (NonEmpty Expr) -- left arguments, possibly empty list of parameters, right arguments + | ChainCons (NonEmpty Expr) Sign Relation Chain deriving (Show, Eq, Ord) data Relation - = RelationSymbol RelationSymbol -- ^ E.g.: /@x \in X@/ + = RelationSymbol RelationSymbol [Expr] -- ^ E.g.: /@x \in X@/, potentially with parameters in braces | RelationExpr Expr -- ^ E.g.: /@x \mathrel{R} y@/ deriving (Show, Eq, Ord) diff --git a/source/Syntax/Concrete.hs b/source/Syntax/Concrete.hs index 8784a1f..ada6227 100644 --- a/source/Syntax/Concrete.hs +++ b/source/Syntax/Concrete.hs @@ -83,9 +83,9 @@ grammar lexicon@Lexicon{..} = mdo relationSign <- rule $ pure Positive <|> (Negative <$ command "not") relationExpr <- rule $ RelationExpr <$> (command "mathrel" *> group expr) - relation <- rule $ (RelationSymbol <$> relator) <|> relationExpr - chainBase <- rule $ ChainBase <$> exprs <*> relationSign <*> relation <*> many (brace expr) <*> exprs - chainCons <- rule $ ChainCons <$> exprs <*> relationSign <*> relation <*> many (brace expr) <*> chain + relation <- rule $ (RelationSymbol <$> relator <*> many (group expr)) <|> relationExpr + chainBase <- rule $ ChainBase <$> exprs <*> relationSign <*> relation <*> exprs + chainCons <- rule $ ChainCons <$> exprs <*> relationSign <*> relation <*> chain chain <- rule $ chainCons <|> chainBase formulaPredicate <- rule $ asum $ prefixPredicateOf FormulaPredicate expr <$> HM.keys lexiconPrefixPredicates @@ -270,7 +270,7 @@ grammar lexicon@Lexicon{..} = mdo abbreviationVerb <- rule $ AbbreviationVerb <$> var <*> verbVar <* (_iff <|> _if) <*> stmt <* _dot abbreviationAdj <- rule $ AbbreviationAdj <$> var <* _is <*> adjVar <* (_iff <|> _if) <*> stmt <* _dot abbreviationNoun <- rule $ AbbreviationNoun <$> var <* _is <* _an <*> nounVar <* (_iff <|> _if) <*> stmt <* _dot - abbreviationRel <- rule $ AbbreviationRel <$> (beginMath *> varSymbol) <*> relator <*> many (brace varSymbol) <*> varSymbol <* endMath <* (_iff <|> _if) <*> stmt <* _dot + abbreviationRel <- rule $ AbbreviationRel <$> (beginMath *> varSymbol) <*> relator <*> many (group varSymbol) <*> varSymbol <* endMath <* (_iff <|> _if) <*> stmt <* _dot abbreviationFun <- rule $ AbbreviationFun <$> (_the *> funVar) <* (_is <|> _denotes) <*> term <* _dot abbreviationEq <- rule $ uncurry AbbreviationEq <$> symbolicPatternEqTerm abbreviation <- rule $ (abbreviationVerb <|> abbreviationAdj <|> abbreviationNoun <|> abbreviationRel <|> abbreviationFun <|> abbreviationEq) diff --git a/test/golden/abbr/parsing.golden b/test/golden/abbr/parsing.golden index 21e4c60..ba3baaf 100644 --- a/test/golden/abbr/parsing.golden +++ b/test/golden/abbr/parsing.golden @@ -23,8 +23,8 @@ ( NamedVar "y" ) :| [] ) Positive ( RelationSymbol - ( Command "in" ) - ) [] + ( Command "in" ) [] + ) ( ExprVar ( NamedVar "x" ) :| [] ) @@ -104,8 +104,8 @@ ( NamedVar "x" ) :| [] ) Positive ( RelationSymbol - ( Symbol "=" ) - ) [] + ( Symbol "=" ) [] + ) ( ExprVar ( NamedVar "x" ) :| [] ) @@ -183,8 +183,8 @@ ( NamedVar "x" ) :| [] ) Positive ( RelationSymbol - ( Symbol "=" ) - ) [] + ( Symbol "=" ) [] + ) ( ExprVar ( NamedVar "y" ) :| [] ) @@ -242,8 +242,8 @@ ( NamedVar "x" ) :| [] ) Positive ( RelationSymbol - ( Symbol "=" ) - ) [] + ( Symbol "=" ) [] + ) ( ExprVar ( NamedVar "y" ) :| [] ) @@ -269,8 +269,8 @@ ( NamedVar "x" ) :| [] ) Positive ( RelationSymbol - ( Command "notin" ) - ) [] + ( Command "notin" ) [] + ) ( ExprVar ( NamedVar "y" ) :| [] ) @@ -284,8 +284,8 @@ ( NamedVar "x" ) :| [] ) Negative ( RelationSymbol - ( Command "in" ) - ) [] + ( Command "in" ) [] + ) ( ExprVar ( NamedVar "y" ) :| [] ) @@ -342,8 +342,8 @@ ( NamedVar "x" ) :| [] ) Positive ( RelationSymbol - ( Command "in" ) - ) [] + ( Command "in" ) [] + ) ( ExprVar ( NamedVar "y" ) :| [] ) @@ -398,8 +398,8 @@ ( NamedVar "x" ) :| [] ) Positive ( RelationSymbol - ( Symbol "=" ) - ) [] + ( Symbol "=" ) [] + ) ( ExprVar ( NamedVar "y" ) :| [] ) diff --git a/test/golden/byRef/parsing.golden b/test/golden/byRef/parsing.golden index e7e3287..89170e5 100644 --- a/test/golden/byRef/parsing.golden +++ b/test/golden/byRef/parsing.golden @@ -14,8 +14,8 @@ ( NamedVar "a" ) :| [] ) Positive ( RelationSymbol - ( Symbol "=" ) - ) [] + ( Symbol "=" ) [] + ) ( ExprVar ( NamedVar "a" ) :| [] ) @@ -39,8 +39,8 @@ ( NamedVar "b" ) :| [] ) Positive ( RelationSymbol - ( Symbol "=" ) - ) [] + ( Symbol "=" ) [] + ) ( ExprVar ( NamedVar "b" ) :| [] ) @@ -64,8 +64,8 @@ ( NamedVar "c" ) :| [] ) Positive ( RelationSymbol - ( Symbol "=" ) - ) [] + ( Symbol "=" ) [] + ) ( ExprVar ( NamedVar "c" ) :| [] ) @@ -101,8 +101,8 @@ ( NamedVar "e" ) :| [] ) Positive ( RelationSymbol - ( Symbol "=" ) - ) [] + ( Symbol "=" ) [] + ) ( ExprVar ( NamedVar "e" ) :| [] ) @@ -127,8 +127,8 @@ ( NamedVar "d" ) :| [] ) Positive ( RelationSymbol - ( Symbol "=" ) - ) [] + ( Symbol "=" ) [] + ) ( ExprVar ( NamedVar "d" ) :| [] ) @@ -156,8 +156,8 @@ ( NamedVar "f" ) :| [] ) Positive ( RelationSymbol - ( Symbol "=" ) - ) [] + ( Symbol "=" ) [] + ) ( ExprVar ( NamedVar "f" ) :| [] ) diff --git a/test/golden/calc/parsing.golden b/test/golden/calc/parsing.golden index 89997b4..d30032b 100644 --- a/test/golden/calc/parsing.golden +++ b/test/golden/calc/parsing.golden @@ -14,8 +14,8 @@ ( NamedVar "x" ) :| [] ) Positive ( RelationSymbol - ( Symbol "=" ) - ) [] + ( Symbol "=" ) [] + ) ( ExprVar ( NamedVar "x" ) :| [] ) @@ -39,8 +39,8 @@ ( NamedVar "z" ) :| [] ) Positive ( RelationSymbol - ( Symbol "=" ) - ) [] + ( Symbol "=" ) [] + ) ( ExprVar ( NamedVar "z" ) :| [] ) @@ -64,8 +64,8 @@ ( NamedVar "y" ) :| [] ) Positive ( RelationSymbol - ( Symbol "=" ) - ) [] + ( Symbol "=" ) [] + ) ( ExprVar ( NamedVar "y" ) :| [] ) @@ -116,8 +116,8 @@ ( NamedVar "y" ) :| [] ) Positive ( RelationSymbol - ( Symbol "=" ) - ) [] + ( Symbol "=" ) [] + ) ( ExprVar ( NamedVar "y" ) :| [] ) @@ -140,8 +140,8 @@ ( NamedVar "y" ) :| [] ) Positive ( RelationSymbol - ( Symbol "=" ) - ) [] + ( Symbol "=" ) [] + ) ( ExprVar ( NamedVar "y" ) :| [] ) @@ -158,8 +158,8 @@ ( NamedVar "y" ) :| [] ) Positive ( RelationSymbol - ( Symbol "=" ) - ) [] + ( Symbol "=" ) [] + ) ( ExprVar ( NamedVar "y" ) :| [] ) diff --git a/test/golden/coord/parsing.golden b/test/golden/coord/parsing.golden index a2b6657..ded174d 100644 --- a/test/golden/coord/parsing.golden +++ b/test/golden/coord/parsing.golden @@ -30,8 +30,8 @@ ( NamedVar "x" ) :| [] ) Positive ( RelationSymbol - ( Symbol "=" ) - ) [] + ( Symbol "=" ) [] + ) ( ExprVar ( NamedVar "x" ) :| [] ) @@ -63,8 +63,8 @@ ( NamedVar "x" ) :| [] ) Positive ( RelationSymbol - ( Symbol "=" ) - ) [] + ( Symbol "=" ) [] + ) ( ExprVar ( NamedVar "x" ) :| [] ) @@ -96,8 +96,8 @@ ( NamedVar "x" ) :| [] ) Positive ( RelationSymbol - ( Symbol "=" ) - ) [] + ( Symbol "=" ) [] + ) ( ExprVar ( NamedVar "x" ) :| [] ) @@ -139,8 +139,8 @@ ( NamedVar "x" ) :| [] ) Positive ( RelationSymbol - ( Symbol "=" ) - ) [] + ( Symbol "=" ) [] + ) ( ExprVar ( NamedVar "x" ) :| [] ) @@ -189,8 +189,8 @@ ( NamedVar "x" ) :| [] ) Positive ( RelationSymbol - ( Symbol "=" ) - ) [] + ( Symbol "=" ) [] + ) ( ExprVar ( NamedVar "x" ) :| [] ) @@ -264,8 +264,8 @@ ( NamedVar "x" ) :| [] ) Positive ( RelationSymbol - ( Symbol "=" ) - ) [] + ( Symbol "=" ) [] + ) ( ExprVar ( NamedVar "x" ) :| [] ) @@ -290,8 +290,8 @@ ( NamedVar "x" ) :| [] ) Positive ( RelationSymbol - ( Symbol "=" ) - ) [] + ( Symbol "=" ) [] + ) ( ExprVar ( NamedVar "y" ) :| [] ) diff --git a/test/golden/finite-set-terms/parsing.golden b/test/golden/finite-set-terms/parsing.golden index e255c8d..2eb0147 100644 --- a/test/golden/finite-set-terms/parsing.golden +++ b/test/golden/finite-set-terms/parsing.golden @@ -15,8 +15,8 @@ ( NamedVar "x" ) :| [] ) Positive ( RelationSymbol - ( Command "in" ) - ) [] + ( Command "in" ) [] + ) ( ExprOp [ Just ( Command "cons" ) @@ -44,8 +44,8 @@ ( NamedVar "x" ) :| [] ) Positive ( RelationSymbol - ( Symbol "=" ) - ) [] + ( Symbol "=" ) [] + ) ( ExprVar ( NamedVar "y" ) :| [] ) @@ -59,8 +59,8 @@ ( NamedVar "x" ) :| [] ) Positive ( RelationSymbol - ( Command "in" ) - ) [] + ( Command "in" ) [] + ) ( ExprVar ( NamedVar "X" ) :| [] ) @@ -110,8 +110,8 @@ ] [] :| [] ) Positive ( RelationSymbol - ( Command "in" ) - ) [] + ( Command "in" ) [] + ) ( ExprOp [ Just ( Command "unit" ) diff --git a/test/golden/formula/parsing.golden b/test/golden/formula/parsing.golden index 4012bde..40a2d7a 100644 --- a/test/golden/formula/parsing.golden +++ b/test/golden/formula/parsing.golden @@ -19,8 +19,8 @@ ( NamedVar "x" ) :| [] ) Positive ( RelationSymbol - ( Symbol "=" ) - ) [] + ( Symbol "=" ) [] + ) ( ExprVar ( NamedVar "x" ) :| [] ) @@ -32,8 +32,8 @@ ( NamedVar "y" ) :| [] ) Positive ( RelationSymbol - ( Symbol "=" ) - ) [] + ( Symbol "=" ) [] + ) ( ExprVar ( NamedVar "y" ) :| [] ) @@ -63,8 +63,8 @@ ( NamedVar "x" ) :| [] ) Positive ( RelationSymbol - ( Symbol "=" ) - ) [] + ( Symbol "=" ) [] + ) ( ExprVar ( NamedVar "y" ) :| [] ) @@ -94,8 +94,8 @@ ( NamedVar "x" ) :| [] ) Positive ( RelationSymbol - ( Symbol "=" ) - ) [] + ( Symbol "=" ) [] + ) ( ExprVar ( NamedVar "y" ) :| [] ) @@ -113,8 +113,8 @@ ( NamedVar "x" ) :| [] ) Positive ( RelationSymbol - ( Command "neq" ) - ) [] + ( Command "neq" ) [] + ) ( ExprVar ( NamedVar "x" ) :| [] ) diff --git a/test/golden/geometry/parsing.golden b/test/golden/geometry/parsing.golden index 1d067d0..553699b 100644 --- a/test/golden/geometry/parsing.golden +++ b/test/golden/geometry/parsing.golden @@ -243,8 +243,8 @@ ( NamedVar "a" ) :| [] ) Positive ( RelationSymbol - ( Symbol "=" ) - ) [] + ( Symbol "=" ) [] + ) ( ExprVar ( NamedVar "b" ) :| [] ) @@ -515,8 +515,8 @@ ( NamedVar "a" ) :| [] ) Positive ( RelationSymbol - ( Command "neq" ) - ) [] + ( Command "neq" ) [] + ) ( ExprVar ( NamedVar "b" ) :| [] ) @@ -589,8 +589,8 @@ ( NamedVar "a" ) :| [] ) Positive ( RelationSymbol - ( Symbol "=" ) - ) [] + ( Symbol "=" ) [] + ) ( ExprVar ( NamedVar "b" ) :| [] ) @@ -797,8 +797,8 @@ ( NamedVar "u" ) :| [] ) Positive ( RelationSymbol - ( Command "neq" ) - ) [] + ( Command "neq" ) [] + ) ( ExprVar ( NamedVar "v" ) :| [] ) diff --git a/test/golden/inductive/parsing.golden b/test/golden/inductive/parsing.golden index 6d5c0e3..c338c69 100644 --- a/test/golden/inductive/parsing.golden +++ b/test/golden/inductive/parsing.golden @@ -19,8 +19,8 @@ ( NamedVar "A" ) :| [] ) Positive ( RelationSymbol - ( Symbol "=" ) - ) [] + ( Symbol "=" ) [] + ) ( ExprVar ( NamedVar "B" ) :| [] ) @@ -175,8 +175,8 @@ ( NamedVar "x" ) :| [] ) Positive ( RelationSymbol - ( Command "in" ) - ) [] + ( Command "in" ) [] + ) ( ExprOp [ Just ( Command "emptyset" ) @@ -223,8 +223,8 @@ ] [] :| [] ) Positive ( RelationSymbol - ( Command "in" ) - ) [] + ( Command "in" ) [] + ) ( ExprOp [ Just ( Command "fin" ) @@ -246,8 +246,8 @@ ( NamedVar "a" ) :| [] ) Positive ( RelationSymbol - ( Command "in" ) - ) [] + ( Command "in" ) [] + ) ( ExprVar ( NamedVar "A" ) :| [] ) @@ -258,8 +258,8 @@ ( NamedVar "B" ) :| [] ) Positive ( RelationSymbol - ( Command "in" ) - ) [] + ( Command "in" ) [] + ) ( ExprOp [ Just ( Command "fin" ) @@ -292,8 +292,8 @@ ] :| [] ) Positive ( RelationSymbol - ( Command "in" ) - ) [] + ( Command "in" ) [] + ) ( ExprOp [ Just ( Command "fin" ) @@ -344,8 +344,8 @@ ( NamedVar "A" ) :| [] ) Positive ( RelationSymbol - ( Command "subseteq" ) - ) [] + ( Command "subseteq" ) [] + ) ( ExprVar ( NamedVar "B" ) :| [] ) @@ -368,8 +368,8 @@ ] :| [] ) Positive ( RelationSymbol - ( Command "subseteq" ) - ) [] + ( Command "subseteq" ) [] + ) ( ExprOp [ Just ( Command "fin" ) @@ -437,8 +437,8 @@ ( NamedVar "w" ) :| [] ) Positive ( RelationSymbol - ( Command "in" ) - ) [] + ( Command "in" ) [] + ) ( ExprVar ( NamedVar "R" ) :| [] ) @@ -450,8 +450,8 @@ ( NamedVar "w" ) :| [] ) Positive ( RelationSymbol - ( Command "in" ) - ) [] + ( Command "in" ) [] + ) ( ExprOp [ Just ( Command "tracl" ) @@ -486,8 +486,8 @@ ] :| [] ) Positive ( RelationSymbol - ( Command "in" ) - ) [] + ( Command "in" ) [] + ) ( ExprOp [ Just ( Command "tracl" ) @@ -519,8 +519,8 @@ ] :| [] ) Positive ( RelationSymbol - ( Command "in" ) - ) [] + ( Command "in" ) [] + ) ( ExprVar ( NamedVar "R" ) :| [] ) @@ -545,8 +545,8 @@ ] :| [] ) Positive ( RelationSymbol - ( Command "in" ) - ) [] + ( Command "in" ) [] + ) ( ExprOp [ Just ( Command "tracl" ) @@ -615,8 +615,8 @@ ( NamedVar "a" ) :| [] ) Positive ( RelationSymbol - ( Command "in" ) - ) [] + ( Command "in" ) [] + ) ( ExprOp [ Just ( Command "fld" ) @@ -649,8 +649,8 @@ ] :| [] ) Positive ( RelationSymbol - ( Command "in" ) - ) [] + ( Command "in" ) [] + ) ( ExprOp [ Just ( Command "qrefltracl" ) @@ -685,8 +685,8 @@ ] :| [] ) Positive ( RelationSymbol - ( Command "in" ) - ) [] + ( Command "in" ) [] + ) ( ExprOp [ Just ( Command "qrefltracl" ) @@ -718,8 +718,8 @@ ] :| [] ) Positive ( RelationSymbol - ( Command "in" ) - ) [] + ( Command "in" ) [] + ) ( ExprVar ( NamedVar "R" ) :| [] ) @@ -744,8 +744,8 @@ ] :| [] ) Positive ( RelationSymbol - ( Command "in" ) - ) [] + ( Command "in" ) [] + ) ( ExprOp [ Just ( Command "qrefltracl" ) @@ -803,8 +803,8 @@ ( NamedVar "a" ) :| [] ) Positive ( RelationSymbol - ( Command "in" ) - ) [] + ( Command "in" ) [] + ) ( ExprVar ( NamedVar "A" ) :| [] ) @@ -829,8 +829,8 @@ ] :| [] ) Positive ( RelationSymbol - ( Command "in" ) - ) [] + ( Command "in" ) [] + ) ( ExprOp [ Just ( Command "refltracl" ) @@ -870,8 +870,8 @@ ] :| [] ) Positive ( RelationSymbol - ( Command "in" ) - ) [] + ( Command "in" ) [] + ) ( ExprOp [ Just ( Command "refltracl" ) @@ -908,8 +908,8 @@ ] :| [] ) Positive ( RelationSymbol - ( Command "in" ) - ) [] + ( Command "in" ) [] + ) ( ExprVar ( NamedVar "R" ) :| [] ) @@ -934,8 +934,8 @@ ] :| [] ) Positive ( RelationSymbol - ( Command "in" ) - ) [] + ( Command "in" ) [] + ) ( ExprOp [ Just ( Command "refltracl" ) @@ -992,8 +992,8 @@ ( NamedVar "a" ) :| [] ) Positive ( RelationSymbol - ( Command "in" ) - ) [] + ( Command "in" ) [] + ) ( ExprOp [ Just ( Command "fld" ) @@ -1027,8 +1027,8 @@ ] :| [] ) Positive ( RelationSymbol - ( Command "in" ) - ) [] + ( Command "in" ) [] + ) ( ExprOp [ Just ( Command "pow" ) @@ -1056,8 +1056,8 @@ ( NamedVar "a" ) :| [] ) Positive ( RelationSymbol - ( Command "in" ) - ) [] + ( Command "in" ) [] + ) ( ExprOp [ Just ( Command "acc" ) diff --git a/test/golden/no-reflexive-set/parsing.golden b/test/golden/no-reflexive-set/parsing.golden index d81dabd..474ba40 100644 --- a/test/golden/no-reflexive-set/parsing.golden +++ b/test/golden/no-reflexive-set/parsing.golden @@ -33,8 +33,8 @@ ( NamedVar "A" ) :| [] ) Negative ( RelationSymbol - ( Command "in" ) - ) [] + ( Command "in" ) [] + ) ( ExprVar ( NamedVar "A" ) :| [] ) diff --git a/test/golden/proofassume/parsing.golden b/test/golden/proofassume/parsing.golden index bf249ed..a83bd13 100644 --- a/test/golden/proofassume/parsing.golden +++ b/test/golden/proofassume/parsing.golden @@ -15,8 +15,8 @@ ( NamedVar "x" ) :| [] ) Positive ( RelationSymbol - ( Command "in" ) - ) [] + ( Command "in" ) [] + ) ( ExprVar ( NamedVar "y" ) :| [] ) @@ -30,8 +30,8 @@ ( NamedVar "x" ) :| [] ) Positive ( RelationSymbol - ( Command "in" ) - ) [] + ( Command "in" ) [] + ) ( ExprVar ( NamedVar "y" ) :| [] ) @@ -55,8 +55,8 @@ ( NamedVar "x" ) :| [] ) Positive ( RelationSymbol - ( Command "in" ) - ) [] + ( Command "in" ) [] + ) ( ExprVar ( NamedVar "y" ) :| [] ) @@ -71,8 +71,8 @@ ( NamedVar "x" ) :| [] ) Positive ( RelationSymbol - ( Command "in" ) - ) [] + ( Command "in" ) [] + ) ( ExprVar ( NamedVar "y" ) :| [] ) @@ -99,8 +99,8 @@ ( NamedVar "x" ) :| [] ) Positive ( RelationSymbol - ( Command "in" ) - ) [] + ( Command "in" ) [] + ) ( ExprVar ( NamedVar "y" ) :| [] ) @@ -114,8 +114,8 @@ ( NamedVar "a" ) :| [] ) Positive ( RelationSymbol - ( Command "in" ) - ) [] + ( Command "in" ) [] + ) ( ExprVar ( NamedVar "b" ) :| [] ) @@ -130,8 +130,8 @@ ( NamedVar "x" ) :| [] ) Positive ( RelationSymbol - ( Command "in" ) - ) [] + ( Command "in" ) [] + ) ( ExprVar ( NamedVar "y" ) :| [] ) @@ -155,8 +155,8 @@ ( NamedVar "a" ) :| [] ) Positive ( RelationSymbol - ( Command "in" ) - ) [] + ( Command "in" ) [] + ) ( ExprVar ( NamedVar "b" ) :| [] ) @@ -171,8 +171,8 @@ ( NamedVar "x" ) :| [] ) Positive ( RelationSymbol - ( Command "in" ) - ) [] + ( Command "in" ) [] + ) ( ExprVar ( NamedVar "y" ) :| [] ) @@ -187,8 +187,8 @@ ( NamedVar "x" ) :| [] ) Positive ( RelationSymbol - ( Command "in" ) - ) [] + ( Command "in" ) [] + ) ( ExprVar ( NamedVar "y" ) :| [] ) diff --git a/test/golden/proofdefinefunction/parsing.golden b/test/golden/proofdefinefunction/parsing.golden index c1ba1d0..2034cbc 100644 --- a/test/golden/proofdefinefunction/parsing.golden +++ b/test/golden/proofdefinefunction/parsing.golden @@ -71,8 +71,8 @@ ( NamedVar "f" ) :| [] ) Positive ( RelationSymbol - ( Symbol "=" ) - ) [] + ( Symbol "=" ) [] + ) ( ExprVar ( NamedVar "f" ) :| [] ) @@ -112,8 +112,8 @@ ( NamedVar "f" ) :| [] ) Positive ( RelationSymbol - ( Symbol "=" ) - ) [] + ( Symbol "=" ) [] + ) ( ExprVar ( NamedVar "f" ) :| [] ) @@ -138,8 +138,8 @@ ( NamedVar "x" ) :| [] ) Positive ( RelationSymbol - ( Command "in" ) - ) [] + ( Command "in" ) [] + ) ( ExprVar ( NamedVar "y" ) :| [] ) @@ -153,8 +153,8 @@ ( NamedVar "x" ) :| [] ) Positive ( RelationSymbol - ( Command "in" ) - ) [] + ( Command "in" ) [] + ) ( ExprVar ( NamedVar "y" ) :| [] ) diff --git a/test/golden/prooffix/parsing.golden b/test/golden/prooffix/parsing.golden index 2702f25..d254e81 100644 --- a/test/golden/prooffix/parsing.golden +++ b/test/golden/prooffix/parsing.golden @@ -16,8 +16,8 @@ ( NamedVar "x" ) :| [] ) Positive ( RelationSymbol - ( Symbol "=" ) - ) [] + ( Symbol "=" ) [] + ) ( ExprVar ( NamedVar "x" ) :| [] ) @@ -43,8 +43,8 @@ ( NamedVar "x" ) :| [] ) Positive ( RelationSymbol - ( Symbol "=" ) - ) [] + ( Symbol "=" ) [] + ) ( ExprVar ( NamedVar "x" ) :| [] ) diff --git a/test/golden/relation-notation/parsing.golden b/test/golden/relation-notation/parsing.golden index bccafe0..33f2808 100644 --- a/test/golden/relation-notation/parsing.golden +++ b/test/golden/relation-notation/parsing.golden @@ -18,7 +18,7 @@ ( ExprVar ( NamedVar "R" ) ) - ) [] + ) ( ExprVar ( NamedVar "y" ) :| [] ) @@ -35,7 +35,7 @@ ( ExprVar ( NamedVar "R" ) ) - ) [] + ) ( ExprVar ( NamedVar "y" ) :| [] ) diff --git a/test/golden/relparam/encoding tasks.golden b/test/golden/relparam/encoding tasks.golden new file mode 100644 index 0000000..caaabdc --- /dev/null +++ b/test/golden/relparam/encoding tasks.golden @@ -0,0 +1 @@ +fof(dummy_abbr_test_noun,conjecture,![Xx]:Xx=Xx).
\ No newline at end of file diff --git a/test/golden/relparam/generating tasks.golden b/test/golden/relparam/generating tasks.golden new file mode 100644 index 0000000..6757991 --- /dev/null +++ b/test/golden/relparam/generating tasks.golden @@ -0,0 +1,25 @@ +[ Task + { taskDirectness = Direct + , taskHypotheses = [] + , taskConjectureLabel = Marker "dummy_abbr_test_noun" + , taskConjecture = Quantified Universally + ( Scope + ( TermSymbol + ( SymbolPredicate + ( PredicateRelation + ( Symbol "=" ) + ) + ) + [ TermVar + ( B + ( NamedVar "x" ) + ) + , TermVar + ( B + ( NamedVar "x" ) + ) + ] + ) + ) + } +]
\ No newline at end of file diff --git a/test/golden/relparam/glossing.golden b/test/golden/relparam/glossing.golden new file mode 100644 index 0000000..4d217d4 --- /dev/null +++ b/test/golden/relparam/glossing.golden @@ -0,0 +1,66 @@ +[ BlockAbbr + ( SourcePos + { sourceName = "test/examples/relparam.tex" + , sourceLine = Pos 2 + , sourceColumn = Pos 1 + } + ) + ( Marker "equalparam" ) + ( Abbreviation + ( SymbolPredicate + ( PredicateRelation + ( Command "EQUAL" ) + ) + ) + ( Scope + ( TermSymbol + ( SymbolPredicate + ( PredicateRelation + ( Symbol "=" ) + ) + ) + [ TermVar + ( B 1 ) + , TermVar + ( B 2 ) + ] + ) + ) + ) +, BlockLemma + ( SourcePos + { sourceName = "test/examples/relparam.tex" + , sourceLine = Pos 6 + , sourceColumn = Pos 1 + } + ) + ( Marker "dummy_abbr_test_noun" ) + ( Lemma [] + ( Quantified Universally + ( Scope + ( TermSymbol + ( SymbolPredicate + ( PredicateRelation + ( Command "EQUAL" ) + ) + ) + [ TermVar + ( F + ( TermVar + ( NamedVar "y" ) + ) + ) + , TermVar + ( B + ( NamedVar "x" ) + ) + , TermVar + ( B + ( NamedVar "x" ) + ) + ] + ) + ) + ) + ) +]
\ No newline at end of file diff --git a/test/golden/relparam/parsing.golden b/test/golden/relparam/parsing.golden new file mode 100644 index 0000000..78b0adb --- /dev/null +++ b/test/golden/relparam/parsing.golden @@ -0,0 +1,61 @@ +[ BlockAbbr + ( SourcePos + { sourceName = "test/examples/relparam.tex" + , sourceLine = Pos 2 + , sourceColumn = Pos 1 + } + ) + ( Marker "equalparam" ) + ( AbbreviationRel + ( NamedVar "x" ) + ( Command "EQUAL" ) + [ NamedVar "y" ] + ( NamedVar "z" ) + ( StmtFormula + ( FormulaChain + ( ChainBase + ( ExprVar + ( NamedVar "x" ) :| [] + ) Positive + ( RelationSymbol + ( Symbol "=" ) [] + ) + ( ExprVar + ( NamedVar "z" ) :| [] + ) + ) + ) + ) + ) +, BlockLemma + ( SourcePos + { sourceName = "test/examples/relparam.tex" + , sourceLine = Pos 6 + , sourceColumn = Pos 1 + } + ) + ( Marker "dummy_abbr_test_noun" ) + ( Lemma [] + ( SymbolicQuantified Universally + ( NamedVar "x" :| [] ) Unbounded Nothing + ( StmtFormula + ( FormulaChain + ( ChainBase + ( ExprVar + ( NamedVar "x" ) :| [] + ) Positive + ( RelationSymbol + ( Command "EQUAL" ) + [ ExprVar + ( NamedVar "y" ) + ] + ) + ( ExprVar + ( NamedVar "x" ) :| [] + ) + ) + ) + ) + ) + ) +]
\ No newline at end of file diff --git a/test/golden/relparam/verification.golden b/test/golden/relparam/verification.golden new file mode 100644 index 0000000..69b9873 --- /dev/null +++ b/test/golden/relparam/verification.golden @@ -0,0 +1 @@ +VerificationSuccess
\ No newline at end of file diff --git a/test/golden/replace/parsing.golden b/test/golden/replace/parsing.golden index 241ca01..b3b8e3c 100644 --- a/test/golden/replace/parsing.golden +++ b/test/golden/replace/parsing.golden @@ -15,8 +15,8 @@ ( NamedVar "x" ) :| [] ) Positive ( RelationSymbol - ( Command "in" ) - ) [] + ( Command "in" ) [] + ) ( ExprOp [ Just ( Command "cons" ) @@ -44,8 +44,8 @@ ( NamedVar "x" ) :| [] ) Positive ( RelationSymbol - ( Symbol "=" ) - ) [] + ( Symbol "=" ) [] + ) ( ExprVar ( NamedVar "y" ) :| [] ) @@ -59,8 +59,8 @@ ( NamedVar "x" ) :| [] ) Positive ( RelationSymbol - ( Command "in" ) - ) [] + ( Command "in" ) [] + ) ( ExprVar ( NamedVar "X" ) :| [] ) @@ -175,8 +175,8 @@ ] :| [] ) Positive ( RelationSymbol - ( Command "in" ) - ) [] + ( Command "in" ) [] + ) ( ExprOp [ Nothing , Just @@ -228,8 +228,8 @@ ( NamedVar "y" ) :| [] ) Positive ( RelationSymbol - ( Symbol "=" ) - ) [] + ( Symbol "=" ) [] + ) ( ExprFiniteSet ( ExprVar ( NamedVar "x" ) :| [] @@ -265,8 +265,8 @@ ] :| [] ) Positive ( RelationSymbol - ( Symbol "=" ) - ) [] + ( Symbol "=" ) [] + ) ( ExprReplace ( ExprOp [ Just diff --git a/test/golden/russell/parsing.golden b/test/golden/russell/parsing.golden index 9f5dc37..c674f24 100644 --- a/test/golden/russell/parsing.golden +++ b/test/golden/russell/parsing.golden @@ -56,8 +56,8 @@ ( NamedVar "x" ) :| [] ) Positive ( RelationSymbol - ( Command "in" ) - ) [] + ( Command "in" ) [] + ) ( ExprVar ( NamedVar "V" ) :| [] ) @@ -146,8 +146,8 @@ ( NamedVar "x" ) :| [] ) Negative ( RelationSymbol - ( Command "in" ) - ) [] + ( Command "in" ) [] + ) ( ExprVar ( NamedVar "x" ) :| [] ) @@ -164,8 +164,8 @@ ( NamedVar "R" ) :| [] ) Positive ( RelationSymbol - ( Command "in" ) - ) [] + ( Command "in" ) [] + ) ( ExprVar ( NamedVar "R" ) :| [] ) @@ -179,8 +179,8 @@ ( NamedVar "R" ) :| [] ) Negative ( RelationSymbol - ( Command "in" ) - ) [] + ( Command "in" ) [] + ) ( ExprVar ( NamedVar "R" ) :| [] ) diff --git a/test/golden/separation/parsing.golden b/test/golden/separation/parsing.golden index 132f408..d8fc79d 100644 --- a/test/golden/separation/parsing.golden +++ b/test/golden/separation/parsing.golden @@ -14,8 +14,8 @@ ( NamedVar "X" ) :| [] ) Positive ( RelationSymbol - ( Symbol "=" ) - ) [] + ( Symbol "=" ) [] + ) ( ExprSep ( NamedVar "x" ) ( ExprVar @@ -28,8 +28,8 @@ ( NamedVar "x" ) :| [] ) Positive ( RelationSymbol - ( Symbol "=" ) - ) [] + ( Symbol "=" ) [] + ) ( ExprVar ( NamedVar "x" ) :| [] ) diff --git a/test/golden/union/parsing.golden b/test/golden/union/parsing.golden index 3ccdc08..0949a0b 100644 --- a/test/golden/union/parsing.golden +++ b/test/golden/union/parsing.golden @@ -18,8 +18,8 @@ ( NamedVar "a" ) :| [] ) Positive ( RelationSymbol - ( Command "in" ) - ) [] + ( Command "in" ) [] + ) ( ExprVar ( NamedVar "A" ) :| [] ) @@ -33,8 +33,8 @@ ( NamedVar "a" ) :| [] ) Positive ( RelationSymbol - ( Command "in" ) - ) [] + ( Command "in" ) [] + ) ( ExprVar ( NamedVar "B" ) :| [] ) @@ -51,8 +51,8 @@ ( NamedVar "A" ) :| [] ) Positive ( RelationSymbol - ( Symbol "=" ) - ) [] + ( Symbol "=" ) [] + ) ( ExprVar ( NamedVar "B" ) :| [] ) @@ -95,8 +95,8 @@ ( NamedVar "a" ) :| [] ) Positive ( RelationSymbol - ( Command "in" ) - ) [] + ( Command "in" ) [] + ) ( ExprOp [ Nothing , Just @@ -120,8 +120,8 @@ ( NamedVar "a" ) :| [] ) Positive ( RelationSymbol - ( Command "in" ) - ) [] + ( Command "in" ) [] + ) ( ExprVar ( NamedVar "A" ) :| [] ) @@ -135,8 +135,8 @@ ( NamedVar "a" ) :| [] ) Positive ( RelationSymbol - ( Command "in" ) - ) [] + ( Command "in" ) [] + ) ( ExprVar ( NamedVar "B" ) :| [] ) @@ -171,8 +171,8 @@ ] :| [] ) Positive ( RelationSymbol - ( Symbol "=" ) - ) [] + ( Symbol "=" ) [] + ) ( ExprOp [ Nothing , Just @@ -223,8 +223,8 @@ ] :| [] ) Positive ( RelationSymbol - ( Symbol "=" ) - ) [] + ( Symbol "=" ) [] + ) ( ExprOp [ Nothing , Just @@ -268,8 +268,8 @@ ( NamedVar "a" ) :| [] ) Positive ( RelationSymbol - ( Command "in" ) - ) [] + ( Command "in" ) [] + ) ( ExprOp [ Nothing , Just @@ -301,8 +301,8 @@ ( NamedVar "a" ) :| [] ) Positive ( RelationSymbol - ( Command "in" ) - ) [] + ( Command "in" ) [] + ) ( ExprOp [ Nothing , Just @@ -340,8 +340,8 @@ ( NamedVar "a" ) :| [] ) Positive ( RelationSymbol - ( Command "in" ) - ) [] + ( Command "in" ) [] + ) ( ExprOp [ Nothing , Just @@ -373,8 +373,8 @@ ( NamedVar "a" ) :| [] ) Positive ( RelationSymbol - ( Command "in" ) - ) [] + ( Command "in" ) [] + ) ( ExprOp [ Nothing , Just |
