Renderingla

aut

Combines boolean expressions with logical or.

Aliases: or

Syntax: <expression> aut <expression>

Category

logic

Related

Examples

examples/corpus/binarius/binarius.fab (canonical · operator-group)

Combines boolean expressions with logical or.

# binarius — binary operators and explicit assignment
#
# Covers arithmetic (+ − * / %), comparison (≡ ≠ < >), logic (et aut),
# nullish coalescing (vel), ternary (sic/secus), bitwise (∧ ∨ ⊻ ⇐ ⇒),
# explicit assignment (←), and postfix increment (⊕ ⊖ statements).
#
# GRAMMAR:
#   binaryExpr :← expr (arithOp | cmpOp | logicOp | bitwiseOp) expr
#
# Inferred result locals below mix fixum _ (explicit infer marker) with sit
# (compact sugar) so both spellings stay visible in one tour.
#
# EXPECTED OUTPUT:
#   binarius.expected

incipit {
    # Arithmetica: + - * / %
    fixum _ summa ← 10 + 5
    nota summa

    fixum _ differentia ← 10 - 5
    nota differentia

    sit productum ← 10 * 5
    nota productum

    sit quotiens ← 10 / 5
    nota quotiens

    sit reliquum ← 10 % 3
    nota reliquum

    # Assignatio explicita (compound glyphs removed)
    varia _ index ← 0
    index ← index + 10
    index ⊕
    index ⊖
    index ← index * 2
    nota index

    # Comparationes
    sit aequalis ← 10 ≡ 10
    nota aequalis

    sit diversus ← 10 ≠ 5
    nota diversus

    sit minor ← 5 < 10
    nota minor

    sit maior ← 10 > 5
    nota maior

    sit medius ← 0 < 5 et 5 < 10
    nota medius

    # Logica
    sit ambo ← verum et verum
    nota ambo

    sit alterutrum ← falsum aut verum
    nota alterutrum

    sit neutrum ← falsum et falsum
    nota neutrum

    sit brevis ← falsum et carum()
    nota brevis

    # vel
    fixum textus ∪ nihil nomen ← nihil
    sit solutum ← nomen vel "defectum"
    nota solutum

    fixum textus ∪ nihil primum ← nihil
    fixum textus ∪ nihil secundum ← nihil
    fixum textus tertium ← "inventum"
    sit inventum ← primum vel secundum vel tertium
    nota inventum

    # sic/secus — ternary conditional (sic = "thus", secus = "otherwise")
    sit aetas ← 25
    sit condicio ← aetas ≥ 18 sic "adultus" secus "minor"
    nota condicio

    sit puncta ← 85
    sit gradus ← puncta ≥ 90 sic "A" secus puncta ≥ 80 sic "B" secus puncta ≥ 70 sic "C" secus "F"
    nota gradus

    # Bit per bit
    sit vexilla ← 0b1010
    sit persona ← 0b1100

    sit coniuncta ← vexilla ∧ persona
    nota coniuncta

    sit velata ← vexilla ∨ persona
    nota velata

    sit diversa ← vexilla ⊻ persona
    nota diversa

    # Motus bit
    sit sinistra ← 1 ⇐ 4
    nota sinistra

    sit dextra ← 16 ⇒ 2
    nota dextra

    sit persona_vacua ← (vexilla ∧ persona) ≡ 0
    nota persona_vacua
}

functio carum() → bivalens {
    nota "hoc non videatur"
    redde verum
}

Expected output:

15
5
50
2
1
20
verum
verum
verum
verum
verum
verum
verum
falsum
falsum
defectum
inventum
adultus
B
8
14
6
16
4
falsum