CoqでAckermann-Peters関数を定義しようとしていますが、わからないエラーメッセージが表示されています。ご覧のとおり、私はAckermannの引数a, bを1組でパッケージ化しています。ab;私は、引数の順序付け関数を定義する順序付けを提供します。次に、Function形式を使用して、Ackermann自体を定義し、ab引数の順序付け関数を提供します。私は何を得る Require I
コンテキスト:私はSoftware Foundationsの演習で取り組んでいます。しかし、 negb (evenb (S n')) = evenb (S (S n'))
私はrewrite -> neg_moveをステップ実行してみてください: Theorem neg_move : forall x y : bool,
x = negb y -> negb x = y.
Proo
は、私は疑問を持っています。 beq_term : term -> term -> bool. のでbeq_ruleの私の定義は実際に私がここに欲しいものではありませんbeq_termの正確型を返す Definition beq_rule a b := beq_term a && beq_term b.
。 Record rule := mkRule {lhs : term; rhs : te
のの恒等仮説を具体的に証明しようとしています。私は、次のように定式化し、証明した: Theorem ind_hyp_on_evens:
forall (p : nat -> Prop),
(p 0 -> (forall n, p n -> p (S (S n))) ->
forall n, p (n + n)).
Proof.
intros p P0 P1.
intro n.
ass