fact: Fixpoint type_size (tau : type) : nat := match tau with | N => 0 | Arrow tau1 tau2 => 1 + (type_size tau1 + type_size tau2) end.
imports: mathcomp(ssreflect ssrbool eqtype) Arith List String Lia Program Relations Wellfounded Lexicographic_Product QuickChick(QuickChick) QuickChick.stlc(monad)