~/bend-docscommunity

LAWS.bend open laws/TODOs

raw source on the hub · import 0xf5507d46d06a1a8043dcb1a582194615/LAWS.bend as LAWS

6 imports
import Base
import ./protocol.bend as P
import ./observe.bend as O
import ./cases.bend as C
import ./model.bend as M
import ./main.bend as S

Laws

law first provedin PROOF.bendsource · line 9 · raw

@+name:String -> {0xf5507d46d06a1a8043dcb1a582194615/observe.run([0xf5507d46d06a1a8043dcb1a582194615/protocol.Intern{name}, 0xf5507d46d06a1a8043dcb1a582194615/protocol.Resolve{0}, 0xf5507d46d06a1a8043dcb1a582194615/protocol.Length{}], 1) == [0xf5507d46d06a1a8043dcb1a582194615/protocol.Observed{0xf5507d46d06a1a8043dcb1a582194615/protocol.Id{0}, 1, 1, [name]}, 0xf5507d46d06a1a8043dcb1a582194615/protocol.Observed{0xf5507d46d06a1a8043dcb1a582194615/protocol.Name{name}, 1, 1, [name]}, 0xf5507d46d06a1a8043dcb1a582194615/protocol.Observed{0xf5507d46d06a1a8043dcb1a582194615/protocol.Number{1}, 1, 1, [name]}] : List<&2, 0xf5507d46d06a1a8043dcb1a582194615/protocol.Observation>}

Universal public observations; no preconditions or uninhabited parameters.

law zero_limit provedin PROOF.bendsource · line 14 · raw

@+name:String -> {0xf5507d46d06a1a8043dcb1a582194615/observe.run([0xf5507d46d06a1a8043dcb1a582194615/protocol.Intern{name}, 0xf5507d46d06a1a8043dcb1a582194615/protocol.Find{name}, 0xf5507d46d06a1a8043dcb1a582194615/protocol.Resolve{0}], 0) == [0xf5507d46d06a1a8043dcb1a582194615/protocol.Observed{0xf5507d46d06a1a8043dcb1a582194615/protocol.Full{}, 0, 0, []}, 0xf5507d46d06a1a8043dcb1a582194615/protocol.Observed{0xf5507d46d06a1a8043dcb1a582194615/protocol.Missing{}, 0, 0, []}, 0xf5507d46d06a1a8043dcb1a582194615/protocol.Observed{0xf5507d46d06a1a8043dcb1a582194615/protocol.Invalid{}, 0, 0, []}] : List<&2, 0xf5507d46d06a1a8043dcb1a582194615/protocol.Observation>}

law empty_find provedin PROOF.bendsource · line 19 · raw

@name:String -> {0xf5507d46d06a1a8043dcb1a582194615/observe.run([0xf5507d46d06a1a8043dcb1a582194615/protocol.Find{name}], 3) == [0xf5507d46d06a1a8043dcb1a582194615/protocol.Observed{0xf5507d46d06a1a8043dcb1a582194615/protocol.Missing{}, 0, 3, []}] : List<&2, 0xf5507d46d06a1a8043dcb1a582194615/protocol.Observation>}

law repeat_preserves provedin PROOF.bendsource · line 24 · raw

{0xf5507d46d06a1a8043dcb1a582194615/cases.check(0xf5507d46d06a1a8043dcb1a582194615/cases.repeat, 4) == True{} : Bool}

Concrete normalization/refinement witnesses; not universal refinement proofs.

law full_preserves provedin PROOF.bendsource · line 26 · raw

{0xf5507d46d06a1a8043dcb1a582194615/cases.check(0xf5507d46d06a1a8043dcb1a582194615/cases.full, 1) == True{} : Bool}

law unicode_exact provedin PROOF.bendsource · line 28 · raw

{0xf5507d46d06a1a8043dcb1a582194615/cases.check(0xf5507d46d06a1a8043dcb1a582194615/cases.unicode, 6) == True{} : Bool}

law default_limit provedin PROOF.bendsource · line 30 · raw

{0xf5507d46d06a1a8043dcb1a582194615/observe.trace([0xf5507d46d06a1a8043dcb1a582194615/protocol.Length{}, 0xf5507d46d06a1a8043dcb1a582194615/protocol.Limit{}, 0xf5507d46d06a1a8043dcb1a582194615/protocol.Resolve{4294967295}], 0xf5507d46d06a1a8043dcb1a582194615/main.Table.new) == [0xf5507d46d06a1a8043dcb1a582194615/protocol.Observed{0xf5507d46d06a1a8043dcb1a582194615/protocol.Number{0}, 0, 16777216, []}, 0xf5507d46d06a1a8043dcb1a582194615/protocol.Observed{0xf5507d46d06a1a8043dcb1a582194615/protocol.Number{16777216}, 0, 16777216, []}, 0xf5507d46d06a1a8043dcb1a582194615/protocol.Observed{0xf5507d46d06a1a8043dcb1a582194615/protocol.Invalid{}, 0, 16777216, []}] : List<&2, 0xf5507d46d06a1a8043dcb1a582194615/protocol.Observation>}

law clamp_limit provedin PROOF.bendsource · line 33 · raw

{0xf5507d46d06a1a8043dcb1a582194615/observe.run([0xf5507d46d06a1a8043dcb1a582194615/protocol.Limit{}], 4294967295) == [0xf5507d46d06a1a8043dcb1a582194615/protocol.Observed{0xf5507d46d06a1a8043dcb1a582194615/protocol.Number{16777216}, 0, 16777216, []}] : List<&2, 0xf5507d46d06a1a8043dcb1a582194615/protocol.Observation>}