我无法证明使用coq的策略的简单逻辑max a b <= a+b。我应该如何解决它?以下是我到现在为止的代码。 s_le_n已被证明,但为简单起见,此处未提及。 Theorem s_le_n: forall (a b: nat), a <= b -> S a <= S b.
Proof. Admitted.
Theorem max_sum: forall (a b: nat), max a
我有一个string b和string a上比较,如果有平等的string c,否则有string x。我知道的假设fun x <= fun c。我如何证明以下陈述? fun是一些函数,它发生在string并返回nat。 fun (if a == b then c else x) <= S (fun c)
的逻辑似乎是显而易见的,但我无法将拆分COQ的if语句。任何帮助,将不胜感激。 谢谢!
我需要在绑定器下泛化表达式。例如,我有我的目标,两个表达式: (fun a b => g a b c)
和 (fun a b => f (g a b c))
我想概括g _ _ c部分: 一种方法做的是第一重写它们分为: (fun a b => (fun x y => g x y c) a b)
第二入: (fun a b =>
f (
(fun x y => g
我想了解如何从运算可计算函数的定理转移到使用归纳定义关系来表示计算的定理。考虑下面这个简单的开发。让我们先从关系及其属性的标准定义: Definition relation (X : Type) := X -> X -> Prop.
Definition reflexive {X : Type} (R : relation X) :=
forall a, R a a.
Defin
我试图证明以下等式: Lemma Foo (A : Type) (n : nat) (gen : forall p : nat, p < S n -> A)
(ic0 : 0 < S n) (ic1 : 0 mod S n < S n):
gen (n - n) ic1 = gen 0 ic0.
的n-n值为0 Nat.sub_diag和0 mod S n也为0的Nat.mod_0