theorem-proving

    5热度

    1回答

    除了具有隐含参数之外,Agda还允许您省略显式参数的值并将其替换为由_字符表示的元变量,其值将通过与隐式解析相同的过程来确定。 Idris是否有类似的功能,或者是隐式参数是将元变量引入程序的唯一方式?

    2热度

    1回答

    我已经通过归纳证明 no f xs ==> null (filter f xs) 其中: filter p [] = [] filter p (x:xs) | p x = x : filter p xs | otherwise = filter p xs null [] = True; null _ = False no p [] = True no p (x

    0热度

    1回答

    我在阅读Brutal Meta-introduction to Agda。 在一节的“使用with和统一重写”他们提了一个情况下的一种类型的目标从云: (filter p (a ∷ as) | p a) ≡ (filterN p (a ∷ as) | p a) 到 (filter p (a ∷ rs) | r) ≡ (filterN p (a ∷ rs) | r) 添加with子句之后。

    0热度

    1回答

    我是新的Isabelle/Hol用户,我对使用Isabelle中的现有定义存在一些困惑。我必须在我的模型中定义完整的晶格结构和完整的偏序(CPO)结构。我发现这些定义已经作为HOLCF Porder.Thy和Lattice.thy中的类存在。所以如果我想将这些定义包含在我的模型中,我应该如何继续?像我复制粘贴所有的定义或有一个特定的命令? 感谢

    1热度

    2回答

    我试图证明P对于A类型的每个元素都有效。不幸的是,我只知道如何证明P对于给定的a:A,如果我有权访问P的所有a'小于a的证明。 这应该包含A所有元素,开始在A最小的元素,然后逐渐证明P适用于所有其他元素的列表上可证明的感应,但我不能得到它的工作。 形式上,问题如下: Parameter A : Type. Parameter lt : A -> A -> Prop. Notation "a <

    2热度

    1回答

    为什么第二个引理的“自动”验证会挂起?第二个引理是第一个引理的特例。 primrec ListSumTAux :: "nat list ⇒ nat ⇒ nat" where "ListSumTAux [] n = n" | "ListSumTAux (x#xs) n = ListSumTAux xs (n+x)" lemma ListSumTAux_1 : " ∀

    2热度

    1回答

    在Isabelle中如何声明字符和字符串文字?我想在Isabelle教程的示例中使用字符节点值(声明为'v option)。 datatype ('a,'v)trie = Trie "'v option" "('a * ('a,'v)trie)list"

    2热度

    1回答

    我是SMT解决者的初学者,我正在尝试使用它们来实现程序合成的变体。无论如何,问题归结为找到一系列应用操作(先前定义的函数的组合),这些操作对于给定的输入提供所请求的输出。 是否有任何现有的使用SMT求解器来找出以何种顺序编写函数以达到特定输出的做法?如果您有任何阅读材料,我很乐意阅读。 我开始使用Z3来完成任务,但如果有任何推理选择其他SMT解算器,请拍! 谢谢。

    7热度

    1回答

    有没有什么像simpl的战术Program Fixpoint s? 特别是,如何证明下面的琐碎陈述? Program Fixpoint bla (n:nat) {measure n} := match n with | 0 => 0 | S n' => S (bla n') end. Lemma obvious: forall n, bla n = n. induction n. r

    0热度

    2回答

    我正在学习Coq并且作为练习我想定义一个类型FnArity (N:nat)来编码所有函数的N参数。那就是: Check FnArity 3 : (forall A B C : Set, A -> B -> C). 应该工作,但 Check FnArity 2 : (forall A B C D : Set, A -> B -> C -> D). 不应该工作。 这是为了教学目的,所以任何相关