Я хотел бы доказать, что окончание подразумевает существование нормальной формы. Это мои определения:Терминация подразумевает существование нормальной формы
Section Forms.
Require Import Classical_Prop.
Require Import Classical_Pred_Type.
Context {A : Type}
Variable R : A -> A -> Prop.
Definition Inverse (Rel : A -> A -> Prop) := fun x y => Rel y x.
Inductive ReflexiveTransitiveClosure : Relation A A :=
| rtc_into (x y : A) : R x y -> ReflexiveTransitiveClosure x y
| rtc_trans (x y z : A) : R x y -> ReflexiveTransitiveClosure y z ->
ReflexiveTransitiveClosure x z
| rtc_refl (x y : A) : x = y -> ReflexiveTransitiveClosure x y.
Definition redc (x : A) := exists y, R x y.
Definition nf (x : A) := ~(redc x).
Definition nfo (x y : A) := ReflexiveTransitiveClosure R x y /\ nf y.
Definition terminating := forall x, Acc (Inverse R) x.
Definition normalizing := forall x, (exists y, nfo x y).
End Forms.
Я хотел бы, чтобы доказать:
Lemma terminating_impl_normalizing (T : terminating):
normalizing.
Я стучал головой о стену в течение нескольких часов, и я не сделал почти никакого прогресса , Я могу показать:
Lemma terminating_not_inf_forall (T : terminating) :
forall f : nat -> A, ~ (forall n, R (f n) (f (S n))).
, который, я считаю, должен помочь (это также верно без классики).
Вопрос хорошо позиционируется. Однако я не могу легко скопировать и вставить это в свой редактор Coq. Существуют синтаксические ошибки и отсутствующие определения. Не могли бы вы подготовить код так, чтобы другим было легче сделать попытку доказать Лемму? – larsr