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))