(* bool-check-for-all problem example *) let build_Vec := λ t: Type → let bv_intern := μ bv_intern → λ pvn: Nat → λ pv: Vec pvn t → λ n: Nat → match n { Z ⇒ pvn S n ⇒ λ x: t → bv_intern (S pvn) (Cons pv x) n }; bv_intern Z Nil let nat! := unary! Z S let bcfamul := μ bcfamul → λ n: Nat → λ f: (Vec n Bool → Bool) → match n { Z ⇒ f Nil; S n ⇒ bcfamul n (λ tv → do { f (Cons tv False); f (Cons tv True); }) } let n4 = nat! 4 bcfamul n4 (λ (build_Vec Bool n4 $a $b $c $d) : Vec n4 Bool → { })