def minimum_choice
stelliferous@0.0.2.0 · proofs/nat_extrema.bend:13
import stelliferous@0.0.2.0/proofs/nat_extrema.bend as NatExtrema
import Base
13def minimum_choice(+left: Nat,+right: Nat) -> {Nat.min(left,right) == Bool.pick(Nat,Nat.is_lt(left,right),left,right) : Nat}:
14 match left right:
15 case 0n 0n: {==}
16 case 0n 1n+right: {==}
17 case 1n+left 0n: {==}
18 case 1n+ +left 1n+ +right:
19 Equal.trans(Nat,1n+Nat.min(left,right),1n+Bool.pick(Nat,Nat.is_lt(left,right),left,right),Bool.pick(Nat,Nat.is_lt(left,right),1n+left,1n+right),
20 Equal.cong(Nat,Nat,n => 1n+n,Nat.min(left,right),Bool.pick(Nat,Nat.is_lt(left,right),left,right),minimum_choice(left,right)),successor_pick(Nat.is_lt(left,right),left,right))