Propositions

A proposition is a symbolic event over a frame.

frame = Frame.dsmt(["A", "B", "C"])
A, B, C = frame.symbols()

Use | for union/disjunction and & for intersection/conjunction:

A | B
A & B
(A | B) & C

Parentheses are recommended in compound expressions.

String expressions

String parsing is also supported:

frame.proposition("A | B")
frame.proposition("A & (B | C)")
frame.proposition("A ∩ (B ∪ C)")

Supported syntax:

  • atom names from the frame,

  • &, , for intersection,

  • |, , for union,

  • parentheses,

  • empty or .

The parser uses the same precedence as the object operators: intersection binds before union.

Representation

str(A | B)       # "A|B"
str(A & B)       # "A&B" in free DSmT, "empty" in DST
format(A | B)    # same string formatting behavior as str(...)

Hybrid model constraints are reflected in the displayed proposition.