я не знаю, почему, но в Coq, пытаясь доказать спецификацию программы я получаю сообщение об ошибке при попытке устранить ИЛИ гипотезу:Coq - Ошибка при устранении или
Error: Cannot find the elimination combinator or_rec, the elimination of the
inductive definition Logic.or on sort Set is probably not allowed.
Это теорема Я хочу, чтобы доказать:
Definition nat_div_mod : forall a b:nat, not(b=0) -> {qr:nat*nat | P a b qr}.
Это цель и контекст, когда происходит ошибка:
a : nat
b : nat
H : b <> 0
IHa : {qr : nat * nat | P a b qr}
x : nat * nat
H2 : P a b x
H0 : snd x < b - 1 \/ snd x >= b - 1
______________________________________
{qr : nat * nat | P (S a) b qr}
до этого theore м, у меня есть это определение и эти импорт:
Definition P (a b:nat) (qr:nat*nat) : Prop := ... (* specification of div/mod *)
Require Import Omega.
Require Import Mult.
я получаю предыдущую ошибку, когда я пытаюсь использовать эту тактику:
elim H0.
Я действительно не знаю, что может быть причиной его.