PetriSystemCategory.hascasl.output revision f454c20b6c126bea7d31d400cc8824b9ee8cc6ea
5c933f3c61d2cfa7e76e4eb610a4b0bac988be47Christian Maederops 0, 1 : Nat
66267bcb678a9c341272c323b299337bcfdb7cc5Christian Maederops __+__, __-__, min : Nat * Nat -> Nat
66267bcb678a9c341272c323b299337bcfdb7cc5Christian Maederpreds __>=__, __<=__, __>__ : Nat * Nat
e7ce154edb906685b3fa7f6c0a764e18a4658068Christian Maederfree type Boolean ::= True | False
66267bcb678a9c341272c323b299337bcfdb7cc5Christian Maedervars S, V : Type
ffd01020a4f35f434b912844ad6e0d6918fadffdChristian Maedertype Set S := S ->? Unit
66267bcb678a9c341272c323b299337bcfdb7cc5Christian Maederops emptySet : Set S;
66267bcb678a9c341272c323b299337bcfdb7cc5Christian Maeder {__} : S -> Set S;
fb69cd512eab767747f109e40322df7cae2f7bdfChristian Maeder __isIn__ : S * Set S ->? Unit;
fb69cd512eab767747f109e40322df7cae2f7bdfChristian Maeder __subset__ : Pred (Set (S) * Set (S));
e8ffec0fa3d3061061bdc16e44247b9cf96b050fChristian Maeder __union__, __intersection__, __\\__ : Set S * Set S -> Set S;
fb69cd512eab767747f109e40322df7cae2f7bdfChristian Maeder __disjoint__ : Pred (Set (S) * Set (S));
e8ffec0fa3d3061061bdc16e44247b9cf96b050fChristian Maeder __*__ : Set S * Set V -> Set (S * V);
e8ffec0fa3d3061061bdc16e44247b9cf96b050fChristian Maeder __disjointUnion__ : Set S * Set S -> Set (S * Boolean);
e8ffec0fa3d3061061bdc16e44247b9cf96b050fChristian Maeder injl, injr : S -> S * Boolean
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maedervar Elem : Type
05e2a3161e4589a717c6fe5c7306820273a473c5Christian Maedertype MultiSet Elem := Elem ->? Nat
05e2a3161e4589a717c6fe5c7306820273a473c5Christian Maederops __isIn__ : Pred (Elem * MultiSet Elem);
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder __<=__ : Pred (MultiSet Elem * MultiSet Elem);
5d7e4bf173534e7eb3fc84dce7bb0151079d3f8aChristian Maeder {} : MultiSet Elem;
ad270004874ce1d0697fb30d7309f180553bb315Christian Maeder {__} : Elem -> MultiSet Elem;
ad270004874ce1d0697fb30d7309f180553bb315Christian Maeder __+__, __-__, __intersection__
e8ffec0fa3d3061061bdc16e44247b9cf96b050fChristian Maeder : MultiSet Elem * MultiSet Elem -> MultiSet Elem;
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder freq : Elem * MultiSet Elem -> Nat;
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder setToMultiSet : Set Elem -> MultiSet Elem
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maedervar Elem : Type
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maederop MultiSetToSet : MultiSet Elem -> Set Elem
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maederforall B : MultiSet Elem; S : Set Elem
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder. let S = MultiSetToSet B in
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder forall x : Elem . x isIn S <=> freq (x, B) > 0;
e7ce154edb906685b3fa7f6c0a764e18a4658068Christian Maedertype MapMultiSet S := MultiSet S ->? MultiSet S
05e2a3161e4589a717c6fe5c7306820273a473c5Christian Maederops sumN : (Nat ->? Nat) -> Nat -> Nat;
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder sumSet : Set Nat ->? Nat;
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder sum : (a ->? Nat) -> Pred a ->? Nat
024621f43239cfe9629e35d35a8669fad7acbba2Christian Maedervars S, V, U : Type
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maedertype Map S := S ->? S
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maederops dom : (S ->? V) -> Set S;
36c6cc568751e4235502cfee00ba7b597dae78dcChristian Maeder range : (S ->? V) -> Set V;
36c6cc568751e4235502cfee00ba7b597dae78dcChristian Maeder image : (S ->? V) -> Set S -> Set V;
27912d626bf179b82fcb337077e5cd9653bb71cfChristian Maeder emptyMap : (S ->? V);
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder __::__-->__ : Pred ((S ->? V) * Pred (S) * Pred (V));
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder __[__/__] : (S ->? V) * S * V -> (S ->? V);
5c933f3c61d2cfa7e76e4eb610a4b0bac988be47Christian Maeder __-__ : (S ->? V) * S -> (S ->? V);
5c933f3c61d2cfa7e76e4eb610a4b0bac988be47Christian Maeder __o__ : (V ->? U) * (S ->? V) -> (S ->? U);
5c933f3c61d2cfa7e76e4eb610a4b0bac988be47Christian Maeder __||__ : (S ->? V) * Set S -> (S ->? V);
8c81b727b788d90ff3b8cbda7b0900c9009243bbChristian Maeder undef__ : S ->? V;
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder ker : (S ->? V) -> Pred (S * S);
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder injective : Pred (S ->? V);
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder __intersectionMap__, __unionMap__
76647324ed70f33b95a881b536d883daccf9568dChristian Maeder : (S ->? V) * (S ->? V) -> (S ->? V);
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder __restrict__ : (S ->? V) * Set S -> (S ->? V)
07b1bf56f3a486f26d69514d05b73100abb25a0eChristian Maedervars S, V : Type
05e2a3161e4589a717c6fe5c7306820273a473c5Christian Maederops __::__-->__ : Pred ((S ->? MultiSet V) * Set S * Set V);
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder freeMap : Map S -> MapMultiSet S;
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder linMap : (S ->? MultiSet V) -> (MultiSet S ->? MultiSet V)
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maederop __intersection__
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder : MultiSet Elem * MultiSet Elem -> MultiSet Elem, assoc, comm, idem
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder {(p, pre, post) : Set P * (T ->? MultiSet P) * (T ->? MultiSet P)
c438c79d00fc438f99627e612498744bdc0d0c89Christian Maeder . (dom pre = dom post
c438c79d00fc438f99627e612498744bdc0d0c89Christian Maeder /\ forall p1 : MultiSet P
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder . p1 isIn range pre => MultiSetToSet p1 subset p)
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder /\ forall p1 : MultiSet P
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder . p1 isIn range pre => MultiSetToSet p1 subset p
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maederops places : Net -> Set P;
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder transitions : Net -> Set T;
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder preMap, postMap : Net -> (T ->? MultiSet P)
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder {(n1, hp, ht, n2) : Net * (P ->? P) * (T ->? T) * Net
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder . hp :: places n1 --> places n2
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder /\ ht :: transitions n1 --> transitions n2
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder /\ forall t : T
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder . t isIn transitions n1
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder => freeMap hp (preMap n1 t) = preMap n2 (ht t)
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder /\ freeMap hp (postMap n1 t) = postMap n2 (ht t)
36c6cc568751e4235502cfee00ba7b597dae78dcChristian Maederops dom : HomNet -> Net;
36c6cc568751e4235502cfee00ba7b597dae78dcChristian Maeder cod : HomNet -> Net;
36c6cc568751e4235502cfee00ba7b597dae78dcChristian Maeder placesMap : HomNet -> (P ->? P);
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder transitionsMap : HomNet -> (T ->? T);
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder id : Net ->? HomNet;
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder __o__ : HomNet * HomNet ->? HomNet
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maederpred injective : HomNet
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maedertype Marking := MultiSet P
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder {(n, m) : Net * Marking
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder . let (p, pre1, post1) = n in forall x : P . x isIn m => x isIn p
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maederops marking : System -> Marking;
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder net : System -> Net;
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder empty : Marking;
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder __|<__> : System * T -> System;
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder __|<__> : System * MultiSet T ->? System
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder {(sys1, hp, ht, sys2) : System * (P ->? P) * (T ->? T) * System
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder . ((net sys1, hp, ht, net sys2) in HomNet)
5c933f3c61d2cfa7e76e4eb610a4b0bac988be47Christian Maeder /\ forall p : P
5c933f3c61d2cfa7e76e4eb610a4b0bac988be47Christian Maeder . freq (p, marking sys1) <= freq (hp p, marking sys2)
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maederops dom : HomSys -> System;
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder cod : HomSys -> System;
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder placesMap : HomSys -> (P ->? P);
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder transitionsMap : HomSys -> (T ->? T);
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder id : System ->? HomSys;
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder __o__ : HomSys * HomSys ->? HomSys
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maederpred injective : HomSys
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maederforall h1, h2 : HomSys
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder. def (h2 o h1)
76647324ed70f33b95a881b536d883daccf9568dChristian Maeder = ((dom h1, placesMap h2 o placesMap h1,
76647324ed70f33b95a881b536d883daccf9568dChristian Maeder transitionsMap h2 o transitionsMap h1, cod h2)
8aea46773664711e0910accc5cf80ef9ee1bcfbfChristian Maeder%% Type Constructors -----------------------------------------------------
8aea46773664711e0910accc5cf80ef9ee1bcfbfChristian MaederBoolean : Type %[free type Boolean ::= False | True]%
c438c79d00fc438f99627e612498744bdc0d0c89Christian MaederHomNet : Type := _t1015 Net
8aea46773664711e0910accc5cf80ef9ee1bcfbfChristian MaederHomSys : Type := _t1513 System
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian MaederMap : Type -> Type := \ S : Type . S ->? S
8aea46773664711e0910accc5cf80ef9ee1bcfbfChristian Maeder: Type -> Type := \ S : Type . MultiSet S ->? MultiSet S
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian MaederMarking : Type := MultiSet P
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian MaederMultiSet : Type -> Type := \ Elem : Type . Elem ->? Nat
8aea46773664711e0910accc5cf80ef9ee1bcfbfChristian MaederNet : Type := _t364 (T ->? MultiSet P)
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian MaederSet : Type -> Type := \ S : Type . S ->? Unit
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian MaederSystem : Type := _t1087 Marking
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder_t1015 : +Type -> Type := _t1016 (T ->? T)
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder_t1016 : +Type -> +Type -> Type := _t1017 (P ->? P)
08b724e8dcbba5820d80f0974b9a5385140815baChristian Maeder_t1017 : +Type -> +Type -> +Type -> Type := _t1018 Net
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder_t1018 : +Type -> +Type -> +Type -> +Type -> Type < __*__*__*__
5d7e4bf173534e7eb3fc84dce7bb0151079d3f8aChristian Maeder_t1087 : +Type -> Type := _t1088 Net
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder_t1088 : +Type -> +Type -> Type < __*__
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder_t1513 : +Type -> Type := _t1514 (T ->? T)
5d7e4bf173534e7eb3fc84dce7bb0151079d3f8aChristian Maeder_t1514 : +Type -> +Type -> Type := _t1515 (P ->? P)
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder_t1515 : +Type -> +Type -> +Type -> Type := _t1516 System
5d7e4bf173534e7eb3fc84dce7bb0151079d3f8aChristian Maeder_t1516 : +Type -> +Type -> +Type -> +Type -> Type < __*__*__*__
5d7e4bf173534e7eb3fc84dce7bb0151079d3f8aChristian Maeder_t364 : +Type -> Type := _t365 (T ->? MultiSet P)
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder_t365 : +Type -> +Type -> Type := _t366 (Set P)
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder_t366 : +Type -> +Type -> +Type -> Type < __*__*__
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder%% Type Variables --------------------------------------------------------
76647324ed70f33b95a881b536d883daccf9568dChristian MaederElem : Type %(var_6)%
717686b54b9650402e2ebfbaadf433eab8ba5171Christian MaederS : Type %(var_62)%
76647324ed70f33b95a881b536d883daccf9568dChristian MaederU : Type %(var_60)%
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian MaederV : Type %(var_63)%
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maedera : Type %(var_57)%
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder%% Assumptions -----------------------------------------------------------
76647324ed70f33b95a881b536d883daccf9568dChristian Maeder0 : Nat %(op)%
717686b54b9650402e2ebfbaadf433eab8ba5171Christian Maeder1 : Nat %(op)%
405b95208385572f491e1e0207d8d14e31022fa6Christian MaederFalse : Boolean %(constructor)%
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian MaederMultiSetToSet : forall Elem : Type . MultiSet Elem -> Set Elem
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian MaederTrue : Boolean %(constructor)%
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder__*__ : forall S : Type; V : Type . Set S * Set V -> Set (S * V)
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder__+__ : Nat * Nat -> Nat %(op)%
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder__+__ : forall Elem : Type
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder . MultiSet Elem * MultiSet Elem -> MultiSet Elem
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder__-__ : Nat * Nat -> Nat %(op)%
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder__-__ : forall Elem : Type
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder . MultiSet Elem * MultiSet Elem -> MultiSet Elem
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder__-__ : forall S : Type; V : Type . (S ->? V) * S -> S ->? V %(op)%
05e2a3161e4589a717c6fe5c7306820273a473c5Christian Maeder__::__-->__ : forall S : Type; V : Type
05e2a3161e4589a717c6fe5c7306820273a473c5Christian Maeder . Pred ((S ->? V) * Pred S * Pred V)
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder__::__-->__ : forall S : Type; V : Type
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder . Pred ((S ->? MultiSet V) * Set S * Set V)
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder__<=__ : Nat * Nat ->? Unit %(pred)%
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder__<=__ : forall Elem : Type . Pred (MultiSet Elem * MultiSet Elem)
341d00318de2d0ea9b6f0ab43f7e4d10ee4fb454Christian Maeder__>__ : Nat * Nat ->? Unit %(pred)%
341d00318de2d0ea9b6f0ab43f7e4d10ee4fb454Christian Maeder__>=__ : Nat * Nat ->? Unit %(pred)%
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder__[__/__] : forall S : Type; V : Type
5a13581acc5a76d392c1dec01657bb3efd4dcf2dChristian Maeder . (S ->? V) * S * V -> S ->? V
### Hint 80.8-80.35, untypable term (with type: (_v382_S ->? MultiSet _v383_V) * Set _v382_S * Set _v383_V)
### Hint 80.41-80.78, untypable term (with type: (_v556_S ->? MultiSet _v557_V) * Set _v556_S * Set _v557_V)
### Hint 81.31, rejected 'Unit < Nat' of '((var t : T), (op transitions : Net -> Set T) (var n1 : Net))'
### Hint 113.10-113.15, untypable term (with type: (_v1526_V ->? _v1527_U) * (_v1528_S ->? _v1526_V))