name (functor) ⊤ editor (22A4) ⊥ editor (22A5) ∀ editor (2200) ∃ editor (2203) λ editor (3BB) ∅ editor (2205) Π editor (3A0) Σ editor (3A3) unary prefix operator @ - ¬ option l editor (AC) ~ # ◇ editor (25C7) □ editor (25A1) binary infix operator = ≠ option = ≈ option x ≤ option < ≥ option > ∧ editor (2227) ∨ editor (2228) -> → editor (2192) \ <- ← editor (2190) / ↔ editor (2194) + * & ^ ∘ editor (2218) ∙ editor (2219) ∩ editor (2229) ∪ editor (222A) ∈ editor (2208)Symbols marked "editor (unicode)" are available to paste from the Autolog editor toolbar. The names can be used as functors with arity determined by source context. The rest of the symbols are keyboard symbols. The right arrows are right associative. The keyboard - is intended for use as a prefix "minus". For subtraction the programmer might use – (option -) as an infix subtraction operator, as in 3–5=-2. (See DUOPs below.)
p(a)(b) (f*g)(X)=f(X)*g(X) F(G∘H)=F(G)∘F(H) F(G∘H)(X)=F(G)(X)∘F(H)(X) (F(G)∘F(H))(X)=F(G)(X)∘F(H)(X)The third expression is not functorial but the fourth and fifth expressions are. The last three expressions are impredicative (variable ops). Parametric functors must be expressed using applied function expressions such as the examples (no prefix or infix versions can be parsed).
α(X,Y) => goal. // functional predicate αX=X. // prefix op in rewrite XαY => YαX. // infix predicate in rule XαY=YαX, // infix op in rewriteIt is of course not recommended to use operators in more than one intended arity/position context. The examples merely emphasize that the dynamic occurrence of the op in source code designates its intended position and arity usage. The built-in ops of the first section above have more precedence (bind tighter) than DUOPs (but all ops bind tighter using parens).
One finds lists of math/logic unicode symbols at various online locations, for example
https://en.wikipedia.org/wiki/Mathematical_operators_and_symbols_in_Unicode
Test such a found symbol by copying it from the reference and then paste it in the source code.
To test whether the symbol renders in a reasonable manner, compile
the source and view the display of the operator in the AutoLog Viewer. The Autolog editor
displays a handy list of symbols (Code menu, ⇑⌘I).
Operator words are possible, as in
mary' likes 'henrywhich then displays in compiled form in the same mannner (with the single quotes).
{term|term} collection builderSee the Autolog Design Notebook for examples.
(term,term) pair builder
If the input document contains autolog code lines surrounded by parens ≪ ... ≫ (keyboard option | and shift-option |, respectively), then the compile command will first extract the embedded autolog code befor compiling it. All text outside of these parens is treated as commentary, and the text ≪inside the parens≫ is presumed to be autolog code.
A goal rule has form A1, ... ,An => goal.The AutoLogAnalyzer does not currently detect exceptions to these conventions nor modify user input source codes. For example, see the README text that accompanies colog14I. Production versions of autolog will have a program code checker for these and other code form requirements or preferences.
A false rule has form A1, ... ,An => false.
All false rules precede all goal rules in a program.
No rule has false or goal literals in the antecedent.
No conjunctive rule consequent contains a false or goal literal.
No disjunctive rule contains a false or goal literal.