def bool.and3
bend-osdev-caps@0.1.0.0 · PROOF.bend:68
import bend-osdev-caps@0.1.0.0/PROOF.bend as PROOF
import Base
68def bool.and3(+x: Bool, +y: Bool, +z: Bool) -> {x == True{} : Bool} -> {y == True{} : Bool} -> {z == True{} : Bool} -> {Bool.and(x, Bool.and(y, z)) == True{} : Bool}:
69 match x y z:
70 case True{} True{} True{}:
71 hx => hy => hz => {==}
72 case False{} y z:
73 hx => hy => hz => bits.absurd(Bool.and(False{}, Bool.and(y, z)), hx)
74 case True{} False{} z:
75 hx => hy => hz => bits.absurd(Bool.and(True{}, Bool.and(False{}, z)), hy)
76 case True{} True{} False{}:
77 hx => hy => hz => bits.absurd(False{}, hz)