next up previous contents
Next: Relation closures Up: Relations Previous: Relations

Definitions

 ** Module lib_rel Imports lib_nat
  Pred = ... : (Type)->Type
  Rel = ... : (Type)->(Type)->Type
  preserves = ... : {s|Type}{t|Type}(s->t)->(Rel s s)->(Rel t t)->Prop
  per = ... : {s|Type}(Rel s s)->Prop
  equiv = ... : {s|Type}(Rel s s)->Prop
  preorder = ... : {s|Type}(Rel s s)->Prop
  PreorderEq = ... : {s|Type}{R:Rel s s}(preorder R)->Rel s s
  SubPred = ... : {s|Type}(Pred s)->(Pred s)->Prop
  reflSubPred = ... : {s|Type}refl (SubPred|s)
  transSubPred = ... : {s|Type}trans (SubPred|s)
  EqPred = ... : {s|Type}Rel (Pred s) (Pred s)
  SubRel = ... : {s|Type}{t|Type}(Rel s t)->(Rel s t)->Prop
  reflSubRel = ... : {s|Type}{t|Type}refl (SubRel|s|t)
  transSubRel = ... : {s|Type}{t|Type}trans (SubRel|s|t)
  EqRel = ... : {s|Type}{t|Type}Rel (Rel s t) (Rel s t)
  andPred = ... : {s|Type}(Pred s)->(Pred s)->Pred s
  orPred = ... : {s|Type}(Pred s)->(Pred s)->Pred s
  impliesPred = ... : {s|Type}(Pred s)->(Pred s)->Pred s
  notPred = ... : {s|Type}(Pred s)->Pred s
* andPredI = ... :
    {s|Type}{E,F,G|Pred s}(SubPred E F)->(SubPred E G)->
    SubPred E (andPred F G)
* andPredE1 = ... :
    {s|Type}{E,F,G|Pred s}(SubPred E (andPred F G))->SubPred E F
* andPredE2 = ... :
    {s|Type}{E,F,G|Pred s}(SubPred E (andPred F G))->SubPred E G
* orPredE = ... :
    {s|Type}{E,F,G|Pred s}(SubPred F E)->(SubPred G E)->
    SubPred (orPred F G) E
* orPredI1 = ... :
    {s|Type}{E,F,G|Pred s}(SubPred E F)->SubPred E (orPred F G)
* orPredI2 = ... :
    {s|Type}{E,F,G|Pred s}(SubPred E G)->SubPred E (orPred F G)
* impliesPredI = ... :
    {s|Type}{E,F,G|Pred s}(SubPred (andPred F G) E)->
    SubPred F (impliesPred G E)
* impliesPredE = ... :
    {s|Type}{E,F,G|Pred s}(SubPred F (impliesPred G E))->
    SubPred (andPred F G) E
  existsf = ... : {s|Type}{t|Type}(t->s)->(Pred t)->Pred s
  starf = ... : {s|Type}{t|Type}(t->s)->(Pred s)->Pred t
  forallf = ... : {s|Type}{t|Type}(t->s)->(Pred t)->Pred s
* existsfE = ... :
    {s|Type}{t|Type}{F|Pred s}{H|Pred t}{f|t->s}
    (SubPred (existsf f H) F)->SubPred H (starf f F)
* existsfI = ... :
    {s|Type}{t|Type}{F|Pred s}{H|Pred t}{f|t->s}
    (SubPred H (starf f F))->SubPred (existsf f H) F
* forallfE = ... :
    {s|Type}{t|Type}{F|Pred s}{H|Pred t}{f|t->s}
    (SubPred F (forallf f H))->SubPred (starf f F) H
* forallfI = ... :
    {s|Type}{t|Type}{F|Pred s}{H|Pred t}{f|t->s}
    (SubPred (starf f F) H)->SubPred F (forallf f H)
  op = ... : {s|Type}{t|Type}(Rel s t)->Rel t s
  notRel = ... : {s|Type}{t|Type}(Rel s t)->Rel s t
  andRel = ... : {s|Type}{t|Type}(Rel s t)->(Rel s t)->Rel s t
  orRel = ... : {s|Type}{t|Type}(Rel s t)->(Rel s t)->Rel s t
  composeRel = ... :
    {s|Type}{t|Type}{u|Type}(Rel s t)->(Rel t u)->Rel s u
  impliesRel = ... :
    {s|Type}{t|Type}{u|Type}(Rel s t)->(Rel s u)->Rel t u
  coimpliesRel = ... :
    {s|Type}{t|Type}{u|Type}(Rel t u)->(Rel s u)->Rel s t
* andRelI = ... :
    {s|Type}{t|Type}{P,Q,R|Rel s t}(SubRel R P)->(SubRel R Q)->
    SubRel R (andRel P Q)
* andRelE1 = ... :
    {s|Type}{t|Type}{P,Q,R|Rel s t}(SubRel R (andRel P Q))->SubRel R P
* andRelE2 = ... :
    {s|Type}{t|Type}{P,Q,R|Rel s t}(SubRel R (andRel P Q))->SubRel R Q
* orRelE = ... :
    {s|Type}{t|Type}{P,Q,R|Rel s t}(SubRel P R)->(SubRel Q R)->
    SubRel (orRel P Q) R
* orRelI1 = ... :
    {s|Type}{t|Type}{P,Q,R|Rel s t}(SubRel R P)->SubRel R (orRel P Q)
* orRelI2 = ... :
    {s|Type}{t|Type}{P,Q,R|Rel s t}(SubRel R Q)->SubRel R (orRel P Q)
* impliesRelI = ... :
    {s|Type}{t|Type}{u|Type}{R|Rel s t}{S|Rel t u}{T|Rel s u}
    (SubRel (composeRel R S) T)->SubRel S (impliesRel R T)
* impliesRelE = ... :
    {s|Type}{t|Type}{u|Type}{R|Rel s t}{S|Rel t u}{T|Rel s u}
    (SubRel S (impliesRel R T))->SubRel (composeRel R S) T
* coimpliesRelI = ... :
    {s|Type}{t|Type}{u|Type}{R|Rel s t}{S|Rel t u}{T|Rel s u}
    (SubRel (composeRel R S) T)->SubRel R (coimpliesRel S T)
* coimpliesRelE = ... :
    {s|Type}{t|Type}{u|Type}{R|Rel s t}{S|Rel t u}{T|Rel s u}
    (SubRel R (coimpliesRel S T))->SubRel (composeRel R S) T
  existsgh = ... :
    {s|Type}{t|Type}{u|Type}{v|Type}(u->v->s)->(u->v->t)->(Rel u v)->
    Rel s t
  stargh = ... :
    {s|Type}{t|Type}{u|Type}{v|Type}(u->v->s)->(u->v->t)->(Rel s t)->
    Rel u v
  forallgh = ... :
    {s|Type}{t|Type}{u|Type}{v|Type}(u->v->s)->(u->v->t)->(Rel u v)->
    Rel s t
* existsghE = ... :
    {s|Type}{t|Type}{u|Type}{v|Type}{P|Rel s t}{U|Rel u v}{g|u->v->s}
    {h|u->v->t}(SubRel (existsgh g h U) P)->SubRel U (stargh g h P)
* existsghI = ... :
    {s|Type}{t|Type}{u|Type}{v|Type}{P|Rel s t}{U|Rel u v}{g|u->v->s}
    {h|u->v->t}(SubRel U (stargh g h P))->SubRel (existsgh g h U) P
* forallghE = ... :
    {s|Type}{t|Type}{u|Type}{v|Type}{P|Rel s t}{U|Rel u v}{g|u->v->s}
    {h|u->v->t}(SubRel P (forallgh g h U))->SubRel (stargh g h P) U
* forallghI = ... :
    {s|Type}{t|Type}{u|Type}{v|Type}{P|Rel s t}{U|Rel u v}{g|u->v->s}
    {h|u->v->t}(SubRel (stargh g h P) U)->SubRel P (forallgh g h U)
  KPred = ... : {s|Type}Prop->Pred s
  KRelL = ... : {s|Type}{t|Type}(Pred s)->Rel s t
  KRelR = ... : {s|Type}{t|Type}(Pred t)->Rel s t
  leftKanPred = ... : {s|Type}{t|Type}(Rel s t)->(Pred s)->Pred t
  rightKanPred = ... : {s|Type}{t|Type}(Rel s t)->(Pred s)->Pred t
* notPredIE = ... :
    {s|Type}{E,F|Pred s}(SubPred E F)->SubPred (notPred F) (notPred E)
* notRelIE = ... :
    {s|Type}{t|Type}{P,Q|Rel s t}(SubRel P Q)->
    SubRel (notRel Q) (notRel P)
  univPred = ... : {s|Type}Pred s
  univRel = ... : {s|Type}{t|Type}Rel s t
  emptyPred = ... : {s|Type}Pred s
  emptyRel = ... : {s|Type}{t|Type}Rel s t
* univPredI = ... : {s|Type}{F|Pred s}SubPred F (univPred|s)
* emptyPredI = ... : {s|Type}{F|Pred s}SubPred (emptyPred|s) F
* univRelI = ... : {s|Type}{t|Type}{R|Rel s t}SubRel R (univRel|s|t)
* emptyRelI = ... : {s|Type}{t|Type}{R|Rel s t}SubRel (emptyRel|s|t) R
* existfunit = ... :
    {s|Type}{t|Type}{H|Pred t}{f|t->s}SubPred H (starf f (existsf f H))
* existfcounit = ... :
    {s|Type}{t|Type}{F|Pred s}{f|t->s}SubPred (existsf f (starf f F)) F
* forallfunit = ... :
    {s|Type}{t|Type}{F|Pred s}{f|t->s}SubPred F (forallf f (starf f F))
* forallfcounit = ... :
    {s|Type}{t|Type}{H|Pred t}{f|t->s}SubPred (starf f (forallf f H)) H
* existghunit = ... :
    {s|Type}{t|Type}{u|Type}{v|Type}{U|Rel u v}{g|u->v->s}{h|u->v->t}
    SubRel U (stargh g h (existsgh g h U))
* existghcounit = ... :
    {s|Type}{t|Type}{u|Type}{v|Type}{P|Rel s t}{g|u->v->s}{h|u->v->t}
    SubRel (existsgh g h (stargh g h P)) P
* forallghunit = ... :
    {s|Type}{t|Type}{u|Type}{v|Type}{P|Rel s t}{g|u->v->s}{h|u->v->t}
    SubRel P (forallgh g h (stargh g h P))
* forallghcounit = ... :
    {s|Type}{t|Type}{u|Type}{v|Type}{U|Rel u v}{g|u->v->s}{h|u->v->t}
    SubRel (stargh g h (forallgh g h U)) U
  monotonePred = ... : {s|Type}{t|Type}((Pred s)->Pred t)->Prop
  monotoneRel = ... :
    {s|Type}{t|Type}{u|Type}{v|Type}((Rel s t)->Rel u v)->Prop
* opMono = ... :
    {s|Type}{t|Type}{P,Q|Rel s t}(SubRel P Q)->SubRel (op P) (op Q)
* opInvol = ... : {s|Type}{t|Type}{P|Rel s t}SubRel P (op (op P))
* composeRelMonoL = ... :
    {s|Type}{t|Type}{u|Type}{P|Rel s t}
    monotoneRel|t|u|s|u (composeRel P)
  composeRelR = ... :
    {s|Type}{t|Type}{u|Type}(Rel t u)->(Rel s t)->Rel s u
* composeRelMonoR = ... :
    {s|Type}{t|Type}{u|Type}{Q|Rel t u}
    monotoneRel|s|t|s|u (composeRelR Q)
* composeRelEqL1 = ... :
    {s|Type}{t|Type}{P|Rel s t}SubRel (composeRel (Eq|s) P) P
* composeRelEqL2 = ... :
    {s|Type}{t|Type}{P|Rel s t}SubRel P (composeRel (Eq|s) P)
* composeRelEqR1 = ... :
    {s|Type}{t|Type}{P|Rel s t}SubRel (composeRel P (Eq|t)) P
* composeRelEqR2 = ... :
    {s|Type}{t|Type}{P|Rel s t}SubRel P (composeRel P (Eq|t))
* composeRelAssoc1 = ... :
    {s|Type}{t|Type}{u|Type}{v|Type}{P|Rel s t}{Q|Rel t u}{R|Rel u v}
    SubRel (composeRel (composeRel P Q) R)
           (composeRel P (composeRel Q R))
* composeRelAssoc2 = ... :
    {s|Type}{t|Type}{u|Type}{v|Type}{P|Rel s t}{Q|Rel t u}{R|Rel u v}
    SubRel (composeRel P (composeRel Q R))
           (composeRel (composeRel P Q) R)
* opcompose1 = ... :
    {s|Type}{t|Type}{u|Type}{P|Rel s t}{Q|Rel t u}
    SubRel (composeRel (op Q) (op P)) (op (composeRel P Q))
* opcompose2 = ... :
    {s|Type}{t|Type}{u|Type}{P|Rel s t}{Q|Rel t u}
    SubRel (op (composeRel P Q)) (composeRel (op Q) (op P))
  ClosedL = ... : {s|Type}{t|Type}(Rel s s)->(Rel s t)->Prop
  ClosedR = ... : {s|Type}{t|Type}(Rel t t)->(Rel s t)->Prop
  symkernelRel = ... : {s|Type}(Rel s s)->Rel s s
* prekernelRelR = ... :
    {s|Type}{S:Rel s s}[P=impliesRel S S]
    and (preorder P) ({Q:Rel s s}(ClosedR Q S)->SubRel Q P)
* prekernelRelL = ... :
    {s|Type}{S:Rel s s}[P=coimpliesRel S S]
    and (preorder P) ({Q:Rel s s}(ClosedL Q S)->SubRel Q P)
* kernelRel = ... :
    {s|Type}{S:Rel s s}(sym S)->[kerS=symkernelRel S]
    and (equiv kerS)
        ({Q:Rel s s}(ClosedL Q S)->(ClosedR Q S)->SubRel Q kerS)



Lego
Fri May 24 19:01:27 BST 1996