在Isabelle中,我试图对相互递归的归纳定义进行规则归纳。case by auto在这一点上,Isabelle停止使用‘非法的示意图变量’,以防“AB”。实际上,当前的目标是⋀x. ?这就是伊莎贝尔说的“图式变量”吗?它是从哪里来的,我怎样才能摆脱它?如果我试图对规则进行归纳,我也会遇到同样的问题: case (eval_num_a i)
show ?(
在Isabelle中,我可以使用arbitrary关键字来概括归纳证明中的变量。这无疑适用于普通的归纳,比如在apply (induction n arbitrary: m)中。我也可以进行规则归纳,比如在apply (induction rule: R.induct)中。但是,在使用规则归纳时,如何泛化变量呢?在我的特殊用例中,我需要证明R x ⟹ S y ⟹ ⟨…⟩形式的一个定理。谓词R是归纳定义的</
在Agda中,似乎通常有两种改进集合的方法。一种方法是简单地编写一个函数,检查一个属性是否持有,并将其解除。= false
Truthy list = T (has_true list)data Truthy : List Bool -> Set where
Here : (x : Bool) -> (x ≡ true) -> (xs :∷ x
你如何解释归纳谓词?它们是用来干什么的?他们背后的理论是什么?它们只存在于依赖型系统中,还是在其他系统中?它们在某种程度上与GADT有关吗?在Coq中,为什么默认情况下它们是真的?这是Coq的一个例子:| even0 : even 0
| evens : forall p:nat, even p -> even (