For example, Isabelle can represent "and" as "^", "or" as "v".....Is there a way to get a complete list of all of these kinds of operators/constructors?
There is the print_syntax
command, but its output might look a bit intimidating. But, for instance, the following line
logic(55) = logic(55) "∘" logic(56) ⇒ "\<^const>Fun.comp
tells you that the symbol ∘
is an infix operator with precedence 55 that maps to the constant Fun.comp
. The corresponding declaration is this:
definition comp :: "('b ⇒ 'c) ⇒ ('a ⇒ 'b) ⇒ 'a ⇒ 'c" (infixl "∘" 55)
where "f ∘ g = (λx. f (g x))"
The more usual way to discover these notations is to either
try the obvious notation (for many things, it is just what one would expect, as is the case for the function composition above).
Find out what the constant is called and then look around the place where it is defined to see what notation is set up for it.
Not that I know of.
A good starting point is the list of all symbols in Main. However, that does not contain all symbols and does not provide a mapping from symbols to definitions.
In general, it is not that useful to find how things are abbreviated:
term "and a b"
and the output shows you the version with the symbol.So the real question is how to find the right definition, not how to find the right symbol. But that is a lot harder.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With