Library Equations
Require Export Arith.
Require Export Omega.
Set Implicit Arguments.
Definition dec (P:nat->Prop) := forall n, {P n} + {~ P n}.
Record Dec : Type := mk_Dec {prop :> nat -> Prop; is_dec : dec prop}.
Definition PS : Dec -> Dec.
intro P; exists (fun n => P (S n)).
intro n; exact (is_dec P (S n)).
Defined.
Definition ord (P Q:Dec) := forall n, Q n -> exists m, m < n /\ P m.
Lemma ord_eq_compat : forall (P1 P2 Q1 Q2:Dec),
(forall n, P1 n -> P2 n) -> (forall n, Q2 n -> Q1 n)
-> ord P1 Q1 -> ord P2 Q2.
red; intros.
case (H1 n); auto.
intros m (H3,H4); exists m; auto.
Save.
Lemma ord_not_0 : forall P Q : Dec, ord P Q -> ~Q 0.
intros P Q H H1; case (H 0 H1); intros m (H2,H3); casetype False; omega.
Save.
Lemma ord_0 : forall P Q : Dec, P 0 -> ~Q 0 -> ord P Q.
intros P Q H H1 n; exists 0; destruct n; intuition.
Save.
- first elt of P then Q
Definition PP : Dec -> Dec -> Dec.
intros P Q; exists (fun n => match n with O => P 0 | S p => Q p end).
intro n; case n.
apply (is_dec P 0).
intro p; apply (is_dec Q p).
Defined.
Lemma PP_PS : forall (P:Dec) n, PP P (PS P) n <-> P n.
intros; case n; simpl; intuition.
Save.
Lemma PS_PP : forall (P Q:Dec) n, PS (PP P Q) n <-> Q n.
unfold PS,PP; simpl; intuition.
Save.
Lemma ord_PS : forall P : Dec, ~ P 0 -> ord (PS P) P.
intros P H n Qn.
destruct n.
case H; trivial.
exists n; auto.
Save.
Lemma ord_PP : forall (P Q: Dec), ~ P 0 -> ord Q (PP P Q).
intros P Q H n Qn.
destruct n.
case H; trivial.
exists n; auto.
Save.
Lemma ord_PS_PS : forall P Q : Dec, ord P Q -> ~P 0 -> ord (PS P) (PS Q).
red; intros.
case (H (S n)); auto.
intros m Hm.
destruct m; intros.
case H0; intuition.
exists m; intuition.
Save.
Lemma Acc_ord_equiv : forall P Q : Dec, (forall n, P n <-> Q n) -> Acc ord P -> Acc ord Q.
intros; destruct H0; intros.
apply Acc_intro; intros R HR.
apply H0.
apply ord_eq_compat with R Q; intuition.
case (H n); auto.
Save.
Lemma Acc_ord_0 : forall P : Dec, P 0 -> Acc ord P.
intros; apply Acc_intro; intros Q H1.
case (ord_not_0 H1 H).
Save.
Hint Immediate Acc_ord_0.
Lemma Acc_ord_PP : forall (P Q:Dec), Acc ord Q -> Acc ord (PP P Q).
intros P Q H; generalize P; clear P; elim H; clear Q H.
intros Q AQ APP P.
apply Acc_intro; intros R H1.
case (is_dec R 0); intro.
auto.
apply Acc_ord_equiv with (PP R (PS R)).
exact (PP_PS R).
apply APP.
apply ord_eq_compat with (PS R) (PS (PP P Q)); auto.
apply ord_PS_PS; auto.
Save.
Lemma Acc_ord_PS : forall (P:Dec), Acc ord (PS P) -> Acc ord P.
intros; apply Acc_ord_equiv with (PP P (PS P)).
exact (PP_PS P).
apply Acc_ord_PP; auto.
Save.
Lemma Acc_ord : forall (P:Dec), (exists n,P n) -> Acc ord P.
intros P (n,H).
generalize P H; elim n; intros.
auto.
apply Acc_ord_PS; auto.
Save.
Fixpoint min_acc (P:Dec) (a:Acc ord P) {struct a} : nat :=
match is_dec P 0 with
left _ => 0 | right H => S (min_acc (Acc_inv a (PS P) (ord_PS P H))) end.
Definition minimize (P:Dec) (e:exists n, P n) : nat := min_acc (Acc_ord P e).
Lemma minimize_P : forall (P:Dec) (e:exists n, P n), P (minimize P e).
unfold minimize.
intros; elim (Acc_ord P e) using Acc_inv_dep.
intros Q H H1.
simpl.
case (is_dec Q 0); auto.
intro n; assert (H2:=H1 (PS Q) (ord_PS Q n)); auto.
Save.
Lemma minimize_min : forall (P:Dec) (e:exists n, P n) (m:nat), m < minimize P e -> ~ P m.
unfold minimize.
intros P e; elim (Acc_ord P e) using Acc_inv_dep.
simpl; intros Q H1 H2 m.
case (is_dec Q 0).
red; intros; omega.
intro n; assert (H3:=H2 (PS Q) (ord_PS Q n)).
destruct m; intros; auto.
assert (H4:m < min_acc (H1 (PS Q) (ord_PS Q n))); try omega.
exact (H3 m H4).
Save.
Lemma minimize_incr : forall (P Q:Dec)(e:exists n, P n)(f:exists n, Q n),
(forall n, P n -> Q n) -> minimize Q f <= minimize P e.
intros; assert (~ minimize P e < minimize Q f); try omega.
red; intro; assert (~ Q (minimize P e)).
apply minimize_min with f; trivial.
apply H1; apply H; apply minimize_P.
Save.
Require Export Cpo.
Section Terms.
Variables F : Type.
Hypothesis decF : forall f g : F, {f=g}+{~f=g}.
Variable Ar : F -> nat.
Record ind (f:F) : Type := mk_ind {val :> nat ; val_less : val < Ar f}.
Inductive term : Type := X | Ap : F -> (nat -> term) -> term.
Implicit Arguments Ap [].
Inductive le_term : term -> term -> Prop :=
le_X : forall t : term, le_term X t
| le_Ap : forall (f:F) (st1 st2: nat -> term),
(forall (i:nat), (i < Ar f) -> le_term (st1 i) (st2 i))
-> le_term (Ap f st1) (Ap f st2).
Hint Constructors le_term.
Lemma le_term_refl : forall t : term, le_term t t.
induction t; auto.
Save.
Lemma le_term_trans : forall t1 t2 t3 : term, le_term t1 t2 -> le_term t2 t3 -> le_term t1 t3.
intros t1 t2 t3 H; generalize t3; clear t3; induction H; intros; auto.
inversion H1; auto.
Save.
Lemma not_le_term_Ap_X : forall f st, ~ le_term (Ap f st) X.
red; intros; inversion H.
Save.
Hint Resolve not_le_term_Ap_X.
Lemma not_le_term_Ap_diff : forall f g st1 st2, ~ f=g -> ~ le_term (Ap f st1) (Ap g st2).
red; intros; inversion H0; auto.
Save.
Hint Resolve not_le_term_Ap_diff.
Lemma not_le_term_Ap_st : forall f st1 st2 (n:nat),
n < Ar f -> ~ le_term (st1 n) (st2 n) -> ~ le_term (Ap f st1) (Ap f st2).
red; intros; inversion H1; auto.
Save.
Lemma dec_finite : forall P:nat->Prop, dec P -> forall n,
{forall i, i < n -> P i} + {exists i, i < n /\ ~P i}.
induction n.
left; intros; casetype False; omega.
case IHn; intro.
case (H n); intro.
left; intros; assert (i < n \/ i = n); try omega; intuition; subst; auto.
right; exists n; auto.
right; case e; intros i H1; exists i; intuition omega.
Defined.
Definition le_term_dec : forall t u, {le_term t u}+{~ le_term t u}.
induction t; auto.
destruct u; auto.
case (decF f f0); intro; auto; subst.
case (dec_finite (P:=fun n => le_term (t n) (t0 n))) with (n:=Ar f0).
red; auto.
auto.
intro; right.
case e; intros i H; apply not_le_term_Ap_st with i; intuition.
Defined.
Definition term_ord : ord.
exists term le_term.
exact le_term_refl.
exact le_term_trans.
Defined.
Fixpoint substX (t u:term_ord) {struct t} : term_ord :=
match t with X => u | Ap f st => Ap f (fun i => substX (st i) u) end.
Lemma substX_le : forall (t u:term_ord), t <= substX t u.
induction t; simpl; intros; auto.
apply le_Ap; intros; auto.
apply (H i u).
Save.
Section InterpTerm.
Variable D : cpo.
Variable Finterp : forall f:F, (Ar f --> D) -c> D.
Fixpoint interp_term (t:term) : D -c> D :=
match t with X => ID D
| Ap f st => Finterp f @_
natk_shift_cont (fun i => interp_term (st i))
end.
Lemma interp_term_X : forall x:D, interp_term X x=x.
trivial.
Save.
Lemma interp_term_Ap : forall (f:F) (st : nat -> term) (x:D),
interp_term (Ap f st) x = Finterp f (fun i => interp_term (st i) x).
trivial.
Save.
Definition interp_equation (t:term) : D := FIXP D (interp_term t).
Lemma interp_equa_eq : forall (t:term), interp_equation t == interp_term t (interp_equation t).
intro t; exact (FIXP_eq (interp_term t)).
Save.
End InterpTerm.
Hint Resolve interp_term_X interp_term_Ap interp_equa_eq.
Definition TU := natO -m> term_ord.
Definition TUle (T T' : TU) := forall n, exists m, n<m /\ T n <= T' m.
Lemma TUle_refl : forall T : TU, TUle T T.
red; intros; exists (S n); auto.
Save.
Lemma TUle_trans : forall T1 T2 T3 : TU, TUle T1 T2 -> TUle T2 T3 -> TUle T1 T3.
red; intros.
case (H n); intros m (H1,H1').
case (H0 m); intros p (H2,H2'); exists p.
split; try omega.
apply Ole_trans with (T2 m); auto.
Save.
Definition TU_ord : ord.
exists TU TUle.
exact TUle_refl.
exact TUle_trans.
Defined.
Definition TU0 : TU_ord := mseq_cte (X:term_ord).
Lemma TU0_less : forall T : TU_ord, TU0 <= T.
intros; simpl; red; intros.
exists (S n); auto.
Save.
- find the smallest m greater than n such that T n <= T' m
Definition le_term_next : forall (T T' : TU_ord) (n:nat), Dec.
intros; exists (fun k => n<k /\ le_term (T n) (T' k)).
intro k.
case (le_lt_dec k n); intro.
intuition.
case (le_term_dec (T n) (T' k)); intuition.
Defined.
Definition TUle_next (T T' : TU_ord) (n:nat) (p: T <= T'):= minimize (le_term_next T T' n) (p n).
Lemma TUle_next_le_term : forall (T T' : TU_ord) (p: T <= T') (n:nat),
T n <= T' (TUle_next n p).
intros; unfold TUle_next.
case (minimize_P (le_term_next T T' n) (p n)); auto.
Save.
Lemma TUle_next_le : forall (T T' : TU_ord) (p: T <= T') (n:nat),
(n < TUle_next n p)%nat.
intros; unfold TUle_next.
case (minimize_P (le_term_next T T' n) (p n)); auto.
Save.
Lemma TUle_next_incr : forall (T T' : TU_ord) (p q: T <= T') (n m:nat),
(n <= m)%nat -> (TUle_next n p <= TUle_next m q)%nat.
intros; unfold TUle_next.
apply minimize_incr.
unfold le_term_next; simpl.
intuition.
apply le_term_trans with (T m); auto.
apply (fmonotonic T); auto.
Save.
- lub T 0 = T 0 0,
- lub T i = T i j with T k l <= lub T i for k <= i, l <= i,
- i <= j, lub T i <= lub T (i+1)
- find the apropriate index in T n starting from T 0 k
Fixpoint lub_index (T : natO-m>TU_ord) (k:nat) (n:nat) {struct n} : nat :=
match n with O => k
| S p => TUle_next (lub_index T k p) (fnatO_elim T p)
end.
Lemma lub_index_S : forall (T : natO-m>TU_ord) (k:nat) (n:nat),
lub_index T k (S n) = TUle_next (lub_index T k n) (fnatO_elim T n).
trivial.
Save.
Lemma lub_index_incr : forall (T : natO-m>TU_ord) (k l:nat) (n:nat),
(k <= l) % nat -> (lub_index T k n <= lub_index T l n)%nat.
induction n; simpl; intros; auto.
apply TUle_next_incr; auto.
Save.
Hint Resolve lub_index_incr.
Lemma lub_index_le_term_S : forall (T : natO-m>TU_ord) (k:nat) (n:nat),
T n (lub_index T k n) <= T (S n) (lub_index T k (S n)).
intros; rewrite lub_index_S.
apply TUle_next_le_term.
Save.
Hint Resolve lub_index_le_term_S.
Lemma lub_index_le_term : forall (T : natO-m>TU_ord) (k:nat) (n m:nat),
(n <= m)%nat -> T n (lub_index T k n) <= T m (lub_index T k m).
intros; elim H; intros; auto.
apply Ole_trans with (T m0 (lub_index T k m0)); auto.
Save.
Hint Resolve lub_index_le_term.
Lemma lub_index_le : forall (T : natO-m>TU_ord) (k:nat) (n:nat),
(n+k <= lub_index T k n)%nat.
induction n; simpl; intros; auto with arith.
assert (Hm:=TUle_next_le (fnatO_elim T n) (lub_index T k n)); omega.
Save.
Hint Resolve lub_index_le.
Definition TUlub : (natO-m>TU_ord) -> TU_ord.
intro T; apply (fnatO_intro (f:=fun n => T n (lub_index T n n))).
intro; apply Ole_trans with (T (S n) (lub_index T n (S n))); auto.
apply (fmonotonic (T (S n))).
apply (lub_index_incr T (k:=n) (l:=S n) (S n)); auto.
Defined.
Lemma TUlub_simpl : forall T n, TUlub T n = T n (lub_index T n n).
trivial.
Save.
Lemma TUlub_le_term : forall (T : natO-m>TU_ord) (k l n : nat),
(k <= n)%nat -> (l<=n)%nat -> T k l <= TUlub T n.
intros; rewrite TUlub_simpl.
apply Ole_trans with (T k (lub_index T n k)); auto.
apply (fmonotonic (T k)); auto.
apply Ole_trans with n; auto.
apply Ole_trans with (k+n); auto with arith.
Save.
Hint Resolve TUlub_le_term.
Lemma TUlub_less : forall T : natO-m>TU_ord, forall n, T n <= TUlub T.
intros.
intro m.
exists (S (n+m)); auto with arith.
Save.
Lemma TUlub_least : forall (T : natO-m>TU_ord) (T':TU_ord),
(forall n, T n <= T') -> TUlub T <= T'.
intros; intro n; rewrite TUlub_simpl.
case (H n (lub_index T n n)); intros m (H1,H2).
exists m; split; auto.
apply le_lt_trans with (lub_index T n n); auto.
apply le_trans with (n+n); auto with arith.
Save.
Definition DTU : cpo.
exists TU_ord TU0 TUlub.
exact TU0_less.
exact TUlub_less.
exact TUlub_least.
Defined.
Fixpoint maxk (f:nat -> nat) (k:nat) (def:nat) {struct k}: nat :=
match k with O => def | S p => let m:=maxk f p def in
let a:= f p in
if le_lt_dec m a then a else m
end.
Lemma maxk_le : forall (f:nat -> nat) (k:nat) (def:nat),
forall p, p < k -> (f p <= maxk f k def)%nat.
induction k; simpl; intros.
absurd (p < 0); auto with arith.
assert (p < k \/ p = k); intuition (try omega); subst;
case (le_lt_dec (maxk f k def) (f k)); intros; auto with arith.
apply le_trans with (maxk f k def); auto.
Save.
Lemma maxk_le_def : forall (f:nat -> nat) (k:nat) (def:nat),
(def<= maxk f k def)%nat.
intros; induction k; simpl; intros; auto.
case (le_lt_dec (maxk f k def) (f k)); intros; auto with arith.
apply le_trans with (maxk f k def); auto.
Save.
Definition TUcte (t:term) : DTU := mseq_cte (O:=term_ord) t.
Definition DTUAp : forall (f:F) (ST: Ar f --> DTU), DTU.
intros f ST; exists (fun n => Ap f (fun i => ST i n)).
red; intros.
apply le_Ap; intros.
apply (fmonotonic (ST i) H).
Defined.
Lemma DTUAp_simpl
: forall (f:F) (ST: Ar f --> DTU)(n:nat), DTUAp ST n = Ap f (fun i => ST i n).
trivial.
Save.
Definition DTUAp_mon : forall (f:F), (Ar f --> DTU) -m> DTU.
intro f; exists (DTUAp (f:=f)).
red; intros; intro n; simpl.
assert (exists m, n < m /\ forall p, p < Ar f -> x p n <= y p m).
generalize x y H; clear x y H; induction (Ar f); intros.
exists (S n); split; auto with arith; intros; absurd (p < 0); auto with arith.
case (IHn0 x y).
intros p Hp; apply (H p); auto with arith.
intros m (Hm1,Hm2).
case (H n0 (lt_n_Sn n0) n); intros m' (Hm'1,Hm'2).
exists (m+m'); split; auto with arith; intros.
assert (p < n0 \/ p = n0); try omega.
case H1; intros.
apply Ole_trans with (y p m); auto with arith.
subst p; apply Ole_trans with (y n0 m'); auto with arith.
case H0; intros m (H1,H2); exists m; auto.
Defined.
Lemma DTUAp_mon_simpl :
forall (f:F) (ST: Ar f --> DTU)(n:nat), DTUAp_mon f ST n = Ap f (fun i => ST i n).
trivial.
Save.
Definition TUAp : forall (f:F), (Ar f --> DTU) -c> DTU.
intro f; exists (DTUAp_mon f).
red; intros.
intro n; rewrite DTUAp_mon_simpl.
change
(exists m : nat,
n < m /\
le_term
(Ap f (fun i : nat => norm 0 (h n) i (lub_index (natk_mon_shift 0 h i) n n)))
(lub (c:=DTU) (DTUAp_mon f @ h) m)).
pose (m:= maxk (fun i => lub_index (natk_mon_shift 0 h i) n n) (Ar f) (S n)).
assert (S n <= m)%nat.
unfold m; apply maxk_le_def.
exists m; split; auto with arith.
apply le_term_trans with (Ap f (fun i => h n i m)).
apply le_Ap; intros.
rewrite norm_simpl_lt; trivial.
apply (fmonotonic (h n i)).
unfold m; apply (maxk_le (fun i : nat => lub_index (natk_mon_shift 0 h i) n n) (S n) (k:=Ar f) H0); auto.
apply (TUlub_le_term (DTUAp_mon f @ h) (k:=n) (l:=m) (n:=m)); auto with arith.
Save.
Fixpoint DTUfix (T:term) (n:nat) {struct n}: term_ord
:= match n with O => X | S p => substX (DTUfix T p) T end.
Definition TUfix (T:term) : DTU.
intro; apply fnatO_intro with (DTUfix T); simpl; intro.
apply substX_le.
Defined.
Lemma TUfix_simplS : forall (T:term) n, TUfix T (S n) = substX (TUfix T n) T.
trivial.
Save.
Lemma TUfix_simpl0 : forall (T:term) , TUfix T O = X.
trivial.
Save.
End Terms.
Global Index | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | _ | (89 entries) |
Lemma Index | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | _ | (47 entries) |
Constructor Index | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | _ | (4 entries) |
Inductive Index | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | _ | (4 entries) |
Definition Index | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | _ | (33 entries) |
Library Index | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | _ | (1 entry) |
Global Index
A
Acc_ord [lemma, in Equations]Acc_ord_equiv [lemma, in Equations]
Acc_ord_PP [lemma, in Equations]
Acc_ord_PS [lemma, in Equations]
Acc_ord_0 [lemma, in Equations]
Ap [constructor, in Equations]
D
dec [definition, in Equations]Dec [inductive, in Equations]
dec_finite [lemma, in Equations]
DTU [definition, in Equations]
DTUAp [definition, in Equations]
DTUAp_mon [definition, in Equations]
DTUAp_mon_simpl [lemma, in Equations]
DTUAp_simpl [lemma, in Equations]
DTUfix [definition, in Equations]
E
Equations [library]I
ind [inductive, in Equations]interp_equation [definition, in Equations]
interp_equa_eq [lemma, in Equations]
interp_term [definition, in Equations]
interp_term_Ap [lemma, in Equations]
interp_term_X [lemma, in Equations]
L
left [definition, in Equations]le_Ap [constructor, in Equations]
le_term [inductive, in Equations]
le_term_dec [definition, in Equations]
le_term_next [definition, in Equations]
le_term_refl [lemma, in Equations]
le_term_trans [lemma, in Equations]
le_X [constructor, in Equations]
lub_index [definition, in Equations]
lub_index_incr [lemma, in Equations]
lub_index_le [lemma, in Equations]
lub_index_le_term [lemma, in Equations]
lub_index_le_term_S [lemma, in Equations]
lub_index_S [lemma, in Equations]
M
maxk [definition, in Equations]maxk_le [lemma, in Equations]
maxk_le_def [lemma, in Equations]
minimize [definition, in Equations]
minimize_incr [lemma, in Equations]
minimize_min [lemma, in Equations]
minimize_P [lemma, in Equations]
min_acc [definition, in Equations]
N
not_le_term_Ap_diff [lemma, in Equations]not_le_term_Ap_st [lemma, in Equations]
not_le_term_Ap_X [lemma, in Equations]
O
O [definition, in Equations]O [definition, in Equations]
O [definition, in Equations]
ord [definition, in Equations]
ord_eq_compat [lemma, in Equations]
ord_not_0 [lemma, in Equations]
ord_PP [lemma, in Equations]
ord_PS [lemma, in Equations]
ord_PS_PS [lemma, in Equations]
ord_0 [lemma, in Equations]
P
PP [definition, in Equations]PP_PS [lemma, in Equations]
PS [definition, in Equations]
PS_PP [lemma, in Equations]
S
substX [definition, in Equations]substX_le [lemma, in Equations]
T
term [inductive, in Equations]term_ord [definition, in Equations]
TU [definition, in Equations]
TUAp [definition, in Equations]
TUcte [definition, in Equations]
TUfix [definition, in Equations]
TUfix_simplS [lemma, in Equations]
TUfix_simpl0 [lemma, in Equations]
TUle [definition, in Equations]
TUle_next [definition, in Equations]
TUle_next_incr [lemma, in Equations]
TUle_next_le [lemma, in Equations]
TUle_next_le_term [lemma, in Equations]
TUle_refl [lemma, in Equations]
TUle_trans [lemma, in Equations]
TUlub [definition, in Equations]
TUlub_least [lemma, in Equations]
TUlub_less [lemma, in Equations]
TUlub_le_term [lemma, in Equations]
TUlub_simpl [lemma, in Equations]
TU0 [definition, in Equations]
TU0_less [lemma, in Equations]
TU_ord [definition, in Equations]
X
X [definition, in Equations]X [definition, in Equations]
X [constructor, in Equations]
Lemma Index
A
Acc_ord [in Equations]Acc_ord_equiv [in Equations]
Acc_ord_PP [in Equations]
Acc_ord_PS [in Equations]
Acc_ord_0 [in Equations]
D
dec_finite [in Equations]DTUAp_mon_simpl [in Equations]
DTUAp_simpl [in Equations]
I
interp_equa_eq [in Equations]interp_term_Ap [in Equations]
interp_term_X [in Equations]
L
le_term_refl [in Equations]le_term_trans [in Equations]
lub_index_incr [in Equations]
lub_index_le [in Equations]
lub_index_le_term [in Equations]
lub_index_le_term_S [in Equations]
lub_index_S [in Equations]
M
maxk_le [in Equations]maxk_le_def [in Equations]
minimize_incr [in Equations]
minimize_min [in Equations]
minimize_P [in Equations]
N
not_le_term_Ap_diff [in Equations]not_le_term_Ap_st [in Equations]
not_le_term_Ap_X [in Equations]
O
ord_eq_compat [in Equations]ord_not_0 [in Equations]
ord_PP [in Equations]
ord_PS [in Equations]
ord_PS_PS [in Equations]
ord_0 [in Equations]
P
PP_PS [in Equations]PS_PP [in Equations]
S
substX_le [in Equations]T
TUfix_simplS [in Equations]TUfix_simpl0 [in Equations]
TUle_next_incr [in Equations]
TUle_next_le [in Equations]
TUle_next_le_term [in Equations]
TUle_refl [in Equations]
TUle_trans [in Equations]
TUlub_least [in Equations]
TUlub_less [in Equations]
TUlub_le_term [in Equations]
TUlub_simpl [in Equations]
TU0_less [in Equations]
Constructor Index
A
Ap [in Equations]L
le_Ap [in Equations]le_X [in Equations]
X
X [in Equations]Inductive Index
D
Dec [in Equations]I
ind [in Equations]L
le_term [in Equations]T
term [in Equations]Definition Index
D
dec [in Equations]DTU [in Equations]
DTUAp [in Equations]
DTUAp_mon [in Equations]
DTUfix [in Equations]
I
interp_equation [in Equations]interp_term [in Equations]
L
left [in Equations]le_term_dec [in Equations]
le_term_next [in Equations]
lub_index [in Equations]
M
maxk [in Equations]minimize [in Equations]
min_acc [in Equations]
O
O [in Equations]O [in Equations]
O [in Equations]
ord [in Equations]
P
PP [in Equations]PS [in Equations]
S
substX [in Equations]T
term_ord [in Equations]TU [in Equations]
TUAp [in Equations]
TUcte [in Equations]
TUfix [in Equations]
TUle [in Equations]
TUle_next [in Equations]
TUlub [in Equations]
TU0 [in Equations]
TU_ord [in Equations]
X
X [in Equations]X [in Equations]
Library Index
E
EquationsGlobal Index | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | _ | (89 entries) |
Lemma Index | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | _ | (47 entries) |
Constructor Index | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | _ | (4 entries) |
Inductive Index | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | _ | (4 entries) |
Definition Index | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | _ | (33 entries) |
Library Index | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | _ | (1 entry) |
This page has been generated by coqdoc