以下が機能するのはなぜですか:
fun f :: "nat ⇒ bool" where
"f _ = (True ∨ (∀x. x))"
しかし、これは失敗します
fun g :: "nat ⇒ bool" where
"g _ = (True ∨ (∀a. True))"
と
Additional type variable(s) in specification of "g_graph": 'a
Specification depends on extra type variables: "'a"
The error(s) above occurred in "test.g_sumC_def"
The error(s) above occurred in definition "g_sumC_def":
"g_sumC ≡ λx. THE_default undefined (g_graph TYPE('a) x)"
同様に、以下は成功します。
value "True ∨ (∀x. x)"
しかし、これは失敗します
value "True ∨ (∀x. True)"
と
Wellsortedness error:
Type 'a not of sort enum
Cannot derive subsort relation {} < enum