return_term loc
(CicAst.Binder (`Pi, (Cic.Anonymous, Some t1), t2))
]
+ | "logic_add" LEFTA [ (* nothing here by default *) ]
+ | "logic_mult" LEFTA [ (* nothing here by default *) ]
+ | "logic_inv" NONA [ (* nothing here by default *) ]
| "relop" LEFTA
[ t1 = term; SYMBOL "="; t2 = term ->
return_term loc (CicAst.Appl [CicAst.Symbol ("eq", 0); t1; t2])
open CicTextualParser2
EXTEND
- term: LEVEL "add"
+ term: LEVEL "logic_add"
[
[ t1 = term; SYMBOL <:unicode<lor>> (* ∨ *); t2 = term ->
return_term loc (CicAst.Appl [CicAst.Symbol ("or", 0); t1; t2])
]
];
- term: LEVEL "mult"
+ term: LEVEL "logic_mult"
[
[ t1 = term; SYMBOL <:unicode<land>> (* ∧ *); t2 = term ->
return_term loc (CicAst.Appl [CicAst.Symbol ("and", 0); t1; t2])
]
];
- term: LEVEL "inv"
+ term: LEVEL "logic_inv"
[
[ SYMBOL <:unicode<lnot>> (* ¬ *); t = term ->
return_term loc (CicAst.Appl [CicAst.Symbol ("not", 0); t])