~/bend-docscommunity

proof/AES_CertificateProof.bend checks

raw source on the hub · import qasim-bend-kit@0.1.0.2/proof/AES_CertificateProof.bend as AES_CertificateProof

1 import
import Base

Definitions

def bool_code source · line 5 · raw

@a:Bool -> @b:Bool -> Data

Decidable equality makes certificates for Bool and Nat unique. These lemmas compare proofs without evaluating the computation that produced each proof.

def bool_code_refl source · line 11 · raw

@a:Bool -> bool_code(a, a)

def bool_encode source · line 16 · raw

@+a:Bool -> @+b:Bool -> @proof:{a == b : Bool} -> bool_code(a, b)

def bool_decode source · line 20 · raw

@+a:Bool -> @+b:Bool -> @code:bool_code(a, b) -> {a == b : Bool}

def bool_decode_refl source · line 27 · raw

@+a:Bool -> {bool_decode(a, a, bool_code_refl(a)) == {==} : {a == a : Bool}}

def bool_decode_encode source · line 33 · raw

@+a:Bool -> @+b:Bool -> @+proof:{a == b : Bool} -> {bool_decode(a, b, bool_encode(a, b, proof)) == proof : {a == b : Bool}}

def bool_code_unique source · line 39 · raw

@+a:Bool -> @+b:Bool -> @+first:bool_code(a, b) -> @second:bool_code(a, b) -> {first == second : bool_code(a, b)}

def bool_unique source · line 54 · raw

@+a:Bool -> @+b:Bool -> @+first:{a == b : Bool} -> @+second:{a == b : Bool} -> {first == second : {a == b : Bool}}

def nat_code source · line 69 · raw

@a:Nat -> @b:Nat -> Data

def nat_code_refl source · line 75 · raw

@a:Nat -> nat_code(a, a)

def nat_encode source · line 80 · raw

@+a:Nat -> @+b:Nat -> @proof:{a == b : Nat} -> nat_code(a, b)

def nat_decode source · line 84 · raw

@+a:Nat -> @+b:Nat -> @code:nat_code(a, b) -> {a == b : Nat}

def nat_decode_refl source · line 93 · raw

@+a:Nat -> {nat_decode(a, a, nat_code_refl(a)) == {==} : {a == a : Nat}}

def nat_decode_encode source · line 105 · raw

@+a:Nat -> @+b:Nat -> @+proof:{a == b : Nat} -> {nat_decode(a, b, nat_encode(a, b, proof)) == proof : {a == b : Nat}}

def nat_code_unique source · line 111 · raw

@+a:Nat -> @+b:Nat -> @+first:nat_code(a, b) -> @second:nat_code(a, b) -> {first == second : nat_code(a, b)}

def nat_unique source · line 124 · raw

@+a:Nat -> @+b:Nat -> @+first:{a == b : Nat} -> @+second:{a == b : Nat} -> {first == second : {a == b : Nat}}