def maximum_choice

stelliferous@0.0.2.0 · proofs/nat_extrema.bend:22

import stelliferous@0.0.2.0/proofs/nat_extrema.bend as NatExtrema
import Base

22def maximum_choice(+left: Nat,+right: Nat) -> {Nat.max(left,right) == Bool.pick(Nat,Nat.is_lt(left,right),right,left) : Nat}:
23  match left right:
24    case 0n 0n: {==}
25    case 0n 1n+right: {==}
26    case 1n+left 0n: {==}
27    case 1n+ +left 1n+ +right:
28      Equal.trans(Nat,1n+Nat.max(left,right),1n+Bool.pick(Nat,Nat.is_lt(left,right),right,left),Bool.pick(Nat,Nat.is_lt(left,right),1n+right,1n+left),
29        Equal.cong(Nat,Nat,n => 1n+n,Nat.max(left,right),Bool.pick(Nat,Nat.is_lt(left,right),right,left),maximum_choice(left,right)),successor_pick(Nat.is_lt(left,right),right,left))

Uses (7)

Used by (1)