Library Gamma
Require
Export
Pow.
Require
Export
LatticeAtom.
Set Implicit
Arguments.
Record
Gamma (A:Type) (B:Set) (PA:Poset A) (PB:Lattice B) : Type := gamma_constr {
gamma_func :> B -> A;
gamma_monotone : forall b1 b2, order PB b1 b2 ->
order PA (gamma_func b1) (gamma_func b2)
}.
Record
GammaTop (A:Type) (B:Set) (PA:Poset A) (PB:Lattice B) : Type := gammatop_constr {
gammatop_gamma :> Gamma PA PB;
gamma_top : forall A, order PA A (gammatop_gamma (top PB))
}.
Record
GammaBestTop (A:Set) (B:Set) (PB:LatticeAtom B) : Type := gammabesttop_constr {
gammabesttop_gamma :> GammaTop (PowPoset A) PB;
gamma_best : forall p b a,
gammabesttop_gamma (best PB p) a ->
gammabesttop_gamma b a ->
in_set p (to_set PB b) = true;
gamma_best_exist : forall b a,
gammabesttop_gamma b a ->
~ to_set PB b = None ->
exists p, gammabesttop_gamma (best PB p) a
}.
Definition
orderGamma (A:Type) (B:Set) (PA:Poset A) (PB:Lattice B) (g1 g2:Gamma PA PB) :=
forall b, order PA (g1 b) (g2 b).
Lemma
orderGamma_refl : forall (A:Type) (B:Set) (PA:Poset A) (PB:Lattice B) (g:Gamma PA PB),
orderGamma g g.
Proof
.
intros.
intros b; auto.
Qed
.
Definition
GammaMonotone
(C:Type) (A:Type) (B:Set) (PA:Poset A) (PB:Lattice B) (g:C->(Gamma PA PB))
(R:C->C->Prop) := forall tr1 tr2,
R tr1 tr2 -> orderGamma (g tr1) (g tr2).
Lemma
GammaMonotone_incl : forall (C:Type) (A:Type) (B:Set) (PA:Poset A) (PB:Lattice B) (g:C->(Gamma PA PB))
(R1 R2:C->C->Prop),
(forall x y, R1 x y -> R2 x y) ->
(GammaMonotone g R2) -> (GammaMonotone g R1).
intros.
intros tr1; intros; auto.
Qed
.
Index
This page has been generated by coqdoc