diff --git a/UserManagement/AppointmentContext.bcc b/UserManagement/AppointmentContext.bcc index e4f952036f46ba5fa7693dea3bef4b85fe7dc362..78587098e2d52a7799b4a33dc7722c18db17e3e3 100644 --- a/UserManagement/AppointmentContext.bcc +++ b/UserManagement/AppointmentContext.bcc @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> <org.eventb.core.scContextFile org.eventb.core.accurate="true" org.eventb.core.configuration="org.eventb.core.fwd;ac.soton.xeventb.xcontext.base"> - <org.eventb.core.scCarrierSet name="STATUS" org.eventb.core.source="/UserManagement/AppointmentContext.buc|org.eventb.core.contextFile#AppointmentContext|org.eventb.core.carrierSet#_w8ygQA35Ee-bMZTDvaEJhw" org.eventb.core.type="ℙ(STATUS)"/> - <org.eventb.core.scCarrierSet name="TREATMENT" org.eventb.core.source="/UserManagement/AppointmentContext.buc|org.eventb.core.contextFile#AppointmentContext|org.eventb.core.carrierSet#_w8wEAA35Ee-bMZTDvaEJhw" org.eventb.core.type="ℙ(TREATMENT)"/> - <org.eventb.core.scCarrierSet name="DATE" org.eventb.core.source="/UserManagement/AppointmentContext.buc|org.eventb.core.contextFile#AppointmentContext|org.eventb.core.carrierSet#_w8x5MA35Ee-bMZTDvaEJhw" org.eventb.core.type="ℙ(DATE)"/> - <org.eventb.core.scCarrierSet name="NHSNUM" org.eventb.core.source="/UserManagement/AppointmentContext.buc|org.eventb.core.contextFile#AppointmentContext|org.eventb.core.carrierSet#_w8xSIA35Ee-bMZTDvaEJhw" org.eventb.core.type="ℙ(NHSNUM)"/> + <org.eventb.core.scCarrierSet name="STATUS" org.eventb.core.source="/UserManagement/AppointmentContext.buc|org.eventb.core.contextFile#AppointmentContext|org.eventb.core.carrierSet#_OeNksg4kEe-1OOl4iWIhfA" org.eventb.core.type="ℙ(STATUS)"/> + <org.eventb.core.scCarrierSet name="TREATMENT" org.eventb.core.source="/UserManagement/AppointmentContext.buc|org.eventb.core.contextFile#AppointmentContext|org.eventb.core.carrierSet#_OeM9oA4kEe-1OOl4iWIhfA" org.eventb.core.type="ℙ(TREATMENT)"/> + <org.eventb.core.scCarrierSet name="DATE" org.eventb.core.source="/UserManagement/AppointmentContext.buc|org.eventb.core.contextFile#AppointmentContext|org.eventb.core.carrierSet#_OeNksQ4kEe-1OOl4iWIhfA" org.eventb.core.type="ℙ(DATE)"/> + <org.eventb.core.scCarrierSet name="NHSNUM" org.eventb.core.source="/UserManagement/AppointmentContext.buc|org.eventb.core.contextFile#AppointmentContext|org.eventb.core.carrierSet#_OeNksA4kEe-1OOl4iWIhfA" org.eventb.core.type="ℙ(NHSNUM)"/> </org.eventb.core.scContextFile> diff --git a/UserManagement/AppointmentContext.bpo b/UserManagement/AppointmentContext.bpo deleted file mode 100644 index 46e86492bfc2424c2d9c928cfa732510a1ee39d8..0000000000000000000000000000000000000000 --- a/UserManagement/AppointmentContext.bpo +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<org.eventb.core.poFile org.eventb.core.poStamp="1"> - <org.eventb.core.poPredicateSet name="ABSHYP" org.eventb.core.poStamp="1"> - <org.eventb.core.poIdentifier name="STATUS" org.eventb.core.type="ℙ(STATUS)"/> - <org.eventb.core.poIdentifier name="TREATMENT" org.eventb.core.type="ℙ(TREATMENT)"/> - <org.eventb.core.poIdentifier name="DATE" org.eventb.core.type="ℙ(DATE)"/> - <org.eventb.core.poIdentifier name="NHSNUM" org.eventb.core.type="ℙ(NHSNUM)"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poPredicateSet name="ALLHYP" org.eventb.core.parentSet="/UserManagement/AppointmentContext.bpo|org.eventb.core.poFile#AppointmentContext|org.eventb.core.poPredicateSet#ABSHYP" org.eventb.core.poStamp="1"/> -</org.eventb.core.poFile> diff --git a/UserManagement/AppointmentContext.bps b/UserManagement/AppointmentContext.bps deleted file mode 100644 index ced513e210f482c3c7cafb26e5e709e8b27ac922..0000000000000000000000000000000000000000 --- a/UserManagement/AppointmentContext.bps +++ /dev/null @@ -1,2 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<org.eventb.core.psFile/> \ No newline at end of file diff --git a/UserManagement/AppointmentContext.buc b/UserManagement/AppointmentContext.buc index d9ab68462af07637c6e79b76fcb6cc6cbd960af6..446f7cca06f7b0714cb59e1ee325b5ea4e3d1bc4 100644 --- a/UserManagement/AppointmentContext.buc +++ b/UserManagement/AppointmentContext.buc @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> <org.eventb.core.contextFile org.eventb.core.configuration="org.eventb.core.fwd;ac.soton.xeventb.xcontext.base" org.eventb.core.generated="false" version="3"> - <org.eventb.core.carrierSet name="_w8wEAA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="TREATMENT"/> - <org.eventb.core.carrierSet name="_w8xSIA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="NHSNUM"/> - <org.eventb.core.carrierSet name="_w8x5MA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="DATE"/> - <org.eventb.core.carrierSet name="_w8ygQA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="STATUS"/> + <org.eventb.core.carrierSet name="_OeM9oA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="TREATMENT"/> + <org.eventb.core.carrierSet name="_OeNksA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="NHSNUM"/> + <org.eventb.core.carrierSet name="_OeNksQ4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="DATE"/> + <org.eventb.core.carrierSet name="_OeNksg4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="STATUS"/> </org.eventb.core.contextFile> diff --git a/UserManagement/AppointmentMachine.bcm b/UserManagement/AppointmentMachine.bcm deleted file mode 100644 index be712e62bc317252b5bb1bcbd1ac8d40206317e6..0000000000000000000000000000000000000000 --- a/UserManagement/AppointmentMachine.bcm +++ /dev/null @@ -1,327 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<org.eventb.core.scMachineFile org.eventb.core.accurate="true" org.eventb.core.configuration="org.eventb.core.fwd;ac.soton.xeventb.xmachine.base"> - <org.eventb.core.scRefinesMachine name="'" org.eventb.core.scTarget="/UserManagement/UserMachine.bcm" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.refinesMachine#_F4vVwA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.scSeesContext name="(" org.eventb.core.scTarget="/UserManagement/AppointmentContext.bcc" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.seesContext#_F4v80A36Ee-bMZTDvaEJhw"/> - <org.eventb.core.scSeesContext name=")" org.eventb.core.scTarget="/UserManagement/UserContext.bcc" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.seesContext#_F4v80Q36Ee-bMZTDvaEJhw"/> - <org.eventb.core.scInternalContext name="AppointmentContext"> - <org.eventb.core.scCarrierSet name="STATUS" org.eventb.core.source="/UserManagement/AppointmentContext.buc|org.eventb.core.contextFile#AppointmentContext|org.eventb.core.carrierSet#_w8ygQA35Ee-bMZTDvaEJhw" org.eventb.core.type="ℙ(STATUS)"/> - <org.eventb.core.scCarrierSet name="TREATMENT" org.eventb.core.source="/UserManagement/AppointmentContext.buc|org.eventb.core.contextFile#AppointmentContext|org.eventb.core.carrierSet#_w8wEAA35Ee-bMZTDvaEJhw" org.eventb.core.type="ℙ(TREATMENT)"/> - <org.eventb.core.scCarrierSet name="DATE" org.eventb.core.source="/UserManagement/AppointmentContext.buc|org.eventb.core.contextFile#AppointmentContext|org.eventb.core.carrierSet#_w8x5MA35Ee-bMZTDvaEJhw" org.eventb.core.type="ℙ(DATE)"/> - <org.eventb.core.scCarrierSet name="NHSNUM" org.eventb.core.source="/UserManagement/AppointmentContext.buc|org.eventb.core.contextFile#AppointmentContext|org.eventb.core.carrierSet#_w8xSIA35Ee-bMZTDvaEJhw" org.eventb.core.type="ℙ(NHSNUM)"/> - </org.eventb.core.scInternalContext> - <org.eventb.core.scInternalContext name="UserContext"> - <org.eventb.core.scCarrierSet name="USER" org.eventb.core.source="/UserManagement/UserContext.buc|org.eventb.core.contextFile#UserContext|org.eventb.core.carrierSet#_w8gzcA35Ee-bMZTDvaEJhw" org.eventb.core.type="ℙ(USER)"/> - <org.eventb.core.scCarrierSet name="PASSWORD" org.eventb.core.source="/UserManagement/UserContext.buc|org.eventb.core.contextFile#UserContext|org.eventb.core.carrierSet#_w8iooA35Ee-bMZTDvaEJhw" org.eventb.core.type="ℙ(PASSWORD)"/> - </org.eventb.core.scInternalContext> - <org.eventb.core.scInvariant name="UserContexu" org.eventb.core.label="inv0" org.eventb.core.predicate="admin∈USER ⇸ PASSWORD" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wv7I8A35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scInvariant name="UserContexv" org.eventb.core.label="inv1" org.eventb.core.predicate="dentist∈USER ⇸ PASSWORD" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wv-MQA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scInvariant name="UserContexw" org.eventb.core.label="inv2" org.eventb.core.predicate="patient∈USER ⇸ PASSWORD" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wv_aYA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scInvariant name="UserContexx" org.eventb.core.label="inv3" org.eventb.core.predicate="dom(admin)⊆USER" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwB2oA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scInvariant name="UserContexy" org.eventb.core.label="inv4" org.eventb.core.predicate="dom(dentist)⊆USER" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwJLYA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scInvariant name="UserContexz" org.eventb.core.label="inv5" org.eventb.core.predicate="dom(patient)⊆USER" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwMOsA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scInvariant name="UserContex{" org.eventb.core.label="inv6" org.eventb.core.predicate="admin∩dentist∩patient=(∅ ⦂ ℙ(USER×PASSWORD))" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwOq8A35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scInvariant name="UserContex|" org.eventb.core.label="inv7" org.eventb.core.predicate="registered=admin∪dentist∪patient" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwQgIA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scInvariant name="UserContex}" org.eventb.core.label="inv8" org.eventb.core.predicate="loggedin⊆registered" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwVYoA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scInvariant name="AppointmentContexu" org.eventb.core.label="inv0" org.eventb.core.predicate="treatments⊆TREATMENT" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.invariant#_F40OQQ36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scInvariant name="AppointmentContexv" org.eventb.core.label="inv1" org.eventb.core.predicate="dates⊆ℕ" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.invariant#_F401UA36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scInvariant name="AppointmentContexw" org.eventb.core.label="inv2" org.eventb.core.predicate="status⊆STATUS" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.invariant#_F401UQ36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scInvariant name="AppointmentContexx" org.eventb.core.label="inv3" org.eventb.core.predicate="appointments⊆dom(patient) × dom(dentist) × dates × ℙ(TREATMENT) × status" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.invariant#_F41cYA36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scInvariant name="AppointmentContexy" org.eventb.core.label="inv4" org.eventb.core.predicate="dentist_treatments⊆dom(dentist) × ℙ(treatments)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.invariant#_F42DcA36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scInvariant name="AppointmentContexz" org.eventb.core.label="inv5" org.eventb.core.predicate="current_date∈ℕ" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.invariant#_F42DcQ36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scInvariant name="AppointmentContex{" org.eventb.core.label="inv6" org.eventb.core.predicate="nhs_num⊆USER × NHSNUM" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.invariant#_F42qgA36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scInvariant name="AppointmentContex|" org.eventb.core.label="inv7" org.eventb.core.predicate="{booked,checked_in,cancelled,missed,completed}⊆STATUS" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.invariant#_F43RkA36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scInvariant name="AppointmentContex}" org.eventb.core.label="inv8" org.eventb.core.predicate="partition(status,{booked},{checked_in},{cancelled},{missed},{completed})" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.invariant#_F43RkQ36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scVariable name="current_date" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.variable#_F4yZEg36Ee-bMZTDvaEJhw" org.eventb.core.type="ℤ"/> - <org.eventb.core.scVariable name="appointments" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.variable#_F4yZEQ36Ee-bMZTDvaEJhw" org.eventb.core.type="ℙ(USER×USER×ℤ×ℙ(TREATMENT)×STATUS)"/> - <org.eventb.core.scVariable name="completed" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.variable#_F40OQA36Ee-bMZTDvaEJhw" org.eventb.core.type="STATUS"/> - <org.eventb.core.scVariable name="loggedin" org.eventb.core.abstract="true" org.eventb.core.concrete="true" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.variable#_F4wj4Q36Ee-bMZTDvaEJhw" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.scVariable name="nhs_num" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.variable#_F4xyAQ36Ee-bMZTDvaEJhw" org.eventb.core.type="ℙ(USER×NHSNUM)"/> - <org.eventb.core.scVariable name="dates" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.variable#_F4yZEA36Ee-bMZTDvaEJhw" org.eventb.core.type="ℙ(ℤ)"/> - <org.eventb.core.scVariable name="patient" org.eventb.core.abstract="true" org.eventb.core.concrete="true" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.variable#_F4v80g36Ee-bMZTDvaEJhw" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.scVariable name="treatments" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.variable#_F4xyAA36Ee-bMZTDvaEJhw" org.eventb.core.type="ℙ(TREATMENT)"/> - <org.eventb.core.scVariable name="booked" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.variable#_F4zAIQ36Ee-bMZTDvaEJhw" org.eventb.core.type="STATUS"/> - <org.eventb.core.scVariable name="cancelled" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.variable#_F4znMQ36Ee-bMZTDvaEJhw" org.eventb.core.type="STATUS"/> - <org.eventb.core.scVariable name="status" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.variable#_F4zAIA36Ee-bMZTDvaEJhw" org.eventb.core.type="ℙ(STATUS)"/> - <org.eventb.core.scVariable name="missed" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.variable#_F4znMg36Ee-bMZTDvaEJhw" org.eventb.core.type="STATUS"/> - <org.eventb.core.scVariable name="dentist" org.eventb.core.abstract="true" org.eventb.core.concrete="true" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.variable#_F4xK8A36Ee-bMZTDvaEJhw" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.scVariable name="checked_in" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.variable#_F4znMA36Ee-bMZTDvaEJhw" org.eventb.core.type="STATUS"/> - <org.eventb.core.scVariable name="registered" org.eventb.core.abstract="true" org.eventb.core.concrete="true" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.variable#_F4wj4A36Ee-bMZTDvaEJhw" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.scVariable name="admin" org.eventb.core.abstract="true" org.eventb.core.concrete="true" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.variable#_F4xK8Q36Ee-bMZTDvaEJhw" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.scVariable name="dentist_treatments" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.variable#_F4xK8g36Ee-bMZTDvaEJhw" org.eventb.core.type="ℙ(USER×ℙ(TREATMENT))"/> - <org.eventb.core.scEvent name="dentist_treatmentt" org.eventb.core.accurate="false" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.label="INITIALISATION" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F434oA36Ee-bMZTDvaEJhw"> - <org.eventb.core.scRefinesEvent name="'" org.eventb.core.scTarget="/UserManagement/UserMachine.bcm|org.eventb.core.scMachineFile#UserMachine|org.eventb.core.scEvent#UserContex~" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F434oA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.scAction name="'" org.eventb.core.assignment="admin ≔ ∅ ⦂ ℙ(USER×PASSWORD)" org.eventb.core.label="act0" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wwWmwA35Ee-bMZTDvaEJhw|org.eventb.core.action#_wwYb8A35Ee-bMZTDvaEJhw"/> - <org.eventb.core.scAction name="(" org.eventb.core.assignment="dentist ≔ ∅ ⦂ ℙ(USER×PASSWORD)" org.eventb.core.label="act1" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wwWmwA35Ee-bMZTDvaEJhw|org.eventb.core.action#_wwaRIA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.scAction name=")" org.eventb.core.assignment="patient ≔ ∅ ⦂ ℙ(USER×PASSWORD)" org.eventb.core.label="act2" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wwWmwA35Ee-bMZTDvaEJhw|org.eventb.core.action#_wwctYA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.scAction name="*" org.eventb.core.assignment="loggedin ≔ ∅ ⦂ ℙ(USER×PASSWORD)" org.eventb.core.label="act3" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wwWmwA35Ee-bMZTDvaEJhw|org.eventb.core.action#_wwd7gA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.scAction name="+" org.eventb.core.assignment="registered ≔ ∅ ⦂ ℙ(USER×PASSWORD)" org.eventb.core.label="act4" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wwWmwA35Ee-bMZTDvaEJhw|org.eventb.core.action#_wwfJoA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.scAction name="," org.eventb.core.assignment="treatments ≔ ∅ ⦂ ℙ(TREATMENT)" org.eventb.core.label="act5" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F434oA36Ee-bMZTDvaEJhw|org.eventb.core.action#_F44fsA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.scAction name="-" org.eventb.core.assignment="dentist_treatments ≔ ∅ ⦂ ℙ(USER×ℙ(TREATMENT))" org.eventb.core.label="act6" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F434oA36Ee-bMZTDvaEJhw|org.eventb.core.action#_F45GwA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.scAction name="." org.eventb.core.assignment="nhs_num ≔ ∅ ⦂ ℙ(USER×NHSNUM)" org.eventb.core.label="act7" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F434oA36Ee-bMZTDvaEJhw|org.eventb.core.action#_F45GwQ36Ee-bMZTDvaEJhw"/> - <org.eventb.core.scAction name="/" org.eventb.core.assignment="dates ≔ ∅ ⦂ ℙ(ℤ)" org.eventb.core.label="act8" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F434oA36Ee-bMZTDvaEJhw|org.eventb.core.action#_F45t0A36Ee-bMZTDvaEJhw"/> - <org.eventb.core.scAction name="0" org.eventb.core.assignment="appointments ≔ ∅ ⦂ ℙ(USER×USER×ℤ×ℙ(TREATMENT)×STATUS)" org.eventb.core.label="act9" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F434oA36Ee-bMZTDvaEJhw|org.eventb.core.action#_F45t0Q36Ee-bMZTDvaEJhw"/> - <org.eventb.core.scAction name="1" org.eventb.core.assignment="current_date ≔ 10124" org.eventb.core.label="act10" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F434oA36Ee-bMZTDvaEJhw|org.eventb.core.action#_F45t0g36Ee-bMZTDvaEJhw"/> - <org.eventb.core.scAction name="2" org.eventb.core.assignment="status ≔ ∅ ⦂ ℙ(STATUS)" org.eventb.core.label="act11" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F434oA36Ee-bMZTDvaEJhw|org.eventb.core.action#_F4678A36Ee-bMZTDvaEJhw"/> - <org.eventb.core.scAction name="3" org.eventb.core.assignment="completed,booked,cancelled,missed,checked_in :∣ ⊤" org.eventb.core.label="GEN" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F434oA36Ee-bMZTDvaEJhw"/> - </org.eventb.core.scEvent> - <org.eventb.core.scEvent name="dentist_treatmentu" org.eventb.core.accurate="true" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.label="registerNewPatient" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F4678Q36Ee-bMZTDvaEJhw"> - <org.eventb.core.scRefinesEvent name="'" org.eventb.core.scTarget="/UserManagement/UserMachine.bcm|org.eventb.core.scMachineFile#UserMachine|org.eventb.core.scEvent#UserContey(" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F4678Q36Ee-bMZTDvaEJhw|org.eventb.core.refinesEvent#_F47jAA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.scGuard name="'" org.eventb.core.label="grd0" org.eventb.core.predicate="new_patient∈USER" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxFmkA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wxKfEA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="(" org.eventb.core.label="grd1" org.eventb.core.predicate="new_patient_password∈PASSWORD" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxFmkA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wxLtMA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name=")" org.eventb.core.label="grd2" org.eventb.core.predicate="new_patient∉dom(registered)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxFmkA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wxNiYA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="*" org.eventb.core.label="grd3" org.eventb.core.predicate="card(admin)>0" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxFmkA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wxQlsA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scAction name="new_patient_passwore" org.eventb.core.assignment="patient ≔ patient∪{new_patient ↦ new_patient_password}" org.eventb.core.label="act1" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxFmkA35Ee-bMZTDvaEJhw|org.eventb.core.action#_wxTpAA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.scAction name="new_patient_passworf" org.eventb.core.assignment="registered ≔ registered∪{new_patient ↦ new_patient_password}" org.eventb.core.label="act2" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxFmkA35Ee-bMZTDvaEJhw|org.eventb.core.action#_wxVeMA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.scParameter name="new_patient_password" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxFmkA35Ee-bMZTDvaEJhw|org.eventb.core.parameter#_wxJQ8A35Ee-bMZTDvaEJhw" org.eventb.core.type="PASSWORD"/> - <org.eventb.core.scParameter name="new_patient" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxFmkA35Ee-bMZTDvaEJhw|org.eventb.core.parameter#_wxIp4A35Ee-bMZTDvaEJhw" org.eventb.core.type="USER"/> - <org.eventb.core.scGuard name="new_patient_passworg" org.eventb.core.label="grd4" org.eventb.core.predicate="patient_nhs_num∈NHSNUM" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F4678Q36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F48KEA36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scParameter name="patient_nhs_num" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F4678Q36Ee-bMZTDvaEJhw|org.eventb.core.parameter#_F47jAQ36Ee-bMZTDvaEJhw" org.eventb.core.type="NHSNUM"/> - <org.eventb.core.scAction name="new_patient_passworh" org.eventb.core.assignment="nhs_num ≔ nhs_num∪{new_patient ↦ patient_nhs_num}" org.eventb.core.label="act3" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F4678Q36Ee-bMZTDvaEJhw|org.eventb.core.action#_F48KEQ36Ee-bMZTDvaEJhw"/> - </org.eventb.core.scEvent> - <org.eventb.core.scEvent name="dentist_treatmentv" org.eventb.core.accurate="true" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.label="BookAppointment" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F48xIA36Ee-bMZTDvaEJhw"> - <org.eventb.core.scGuard name="'" org.eventb.core.label="grd0" org.eventb.core.predicate="pt∈dom(patient)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F48xIA36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F49_QA36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="(" org.eventb.core.label="grd1" org.eventb.core.predicate="pt∈dom(loggedin)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F48xIA36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F4-mUA36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name=")" org.eventb.core.label="grd2" org.eventb.core.predicate="chosen_dentist∈dom(dentist)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F48xIA36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F4-mUQ36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="*" org.eventb.core.label="grd3" org.eventb.core.predicate="chosen_date∈dates" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F48xIA36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F4_NYA36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="+" org.eventb.core.label="grd4" org.eventb.core.predicate="chosen_date>current_date" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F48xIA36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F4_0cA36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="," org.eventb.core.label="grd5" org.eventb.core.predicate="treatment∈dentist_treatments[{chosen_dentist}]" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F48xIA36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F4_0cQ36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="-" org.eventb.core.label="grd6" org.eventb.core.predicate="∀a⦂USER,b⦂USER,c⦂ℤ,d⦂ℙ(TREATMENT),e⦂STATUS·a ↦ b ↦ c ↦ d ↦ e∈appointments⇒a≠pt∧d≠treatment" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F48xIA36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5AbgA36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="." org.eventb.core.label="grd7" org.eventb.core.predicate="¬(∃b⦂USER,c⦂ℤ,d⦂ℙ(TREATMENT),e⦂STATUS·pt ↦ b ↦ c ↦ d ↦ e∈appointments∧chosen_date − c<14)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F48xIA36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5AbgQ36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scParameter name="treatment" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F48xIA36Ee-bMZTDvaEJhw|org.eventb.core.parameter#_F49YMg36Ee-bMZTDvaEJhw" org.eventb.core.type="ℙ(TREATMENT)"/> - <org.eventb.core.scParameter name="pt" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F48xIA36Ee-bMZTDvaEJhw|org.eventb.core.parameter#_F48xIQ36Ee-bMZTDvaEJhw" org.eventb.core.type="USER"/> - <org.eventb.core.scParameter name="chosen_date" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F48xIA36Ee-bMZTDvaEJhw|org.eventb.core.parameter#_F49YMQ36Ee-bMZTDvaEJhw" org.eventb.core.type="ℤ"/> - <org.eventb.core.scParameter name="chosen_dentist" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F48xIA36Ee-bMZTDvaEJhw|org.eventb.core.parameter#_F49YMA36Ee-bMZTDvaEJhw" org.eventb.core.type="USER"/> - <org.eventb.core.scAction name="chosen_dentisu" org.eventb.core.assignment="appointments ≔ appointments∪{pt ↦ chosen_dentist ↦ chosen_date ↦ treatment ↦ booked}" org.eventb.core.label="act1" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F48xIA36Ee-bMZTDvaEJhw|org.eventb.core.action#_F5BCkA36Ee-bMZTDvaEJhw"/> - </org.eventb.core.scEvent> - <org.eventb.core.scEvent name="dentist_treatmentw" org.eventb.core.accurate="true" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.label="loginUser" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5BCkQ36Ee-bMZTDvaEJhw"> - <org.eventb.core.scRefinesEvent name="'" org.eventb.core.scTarget="/UserManagement/UserMachine.bcm|org.eventb.core.scMachineFile#UserMachine|org.eventb.core.scEvent#UserContey)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5BCkQ36Ee-bMZTDvaEJhw|org.eventb.core.refinesEvent#_F5BpoA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.scGuard name="'" org.eventb.core.label="grd0" org.eventb.core.predicate="user∈dom(registered)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxXTYA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wxeoIA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="(" org.eventb.core.label="grd1" org.eventb.core.predicate="user_password=registered(user)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxXTYA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wxkHsA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name=")" org.eventb.core.label="grd2" org.eventb.core.predicate="user∉dom(loggedin)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxXTYA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wxl84A35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scAction name="user_passwore" org.eventb.core.assignment="loggedin ≔ loggedin∪{user ↦ user_password}" org.eventb.core.label="act0" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxXTYA35Ee-bMZTDvaEJhw|org.eventb.core.action#_wxnyEA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.scParameter name="user_password" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxXTYA35Ee-bMZTDvaEJhw|org.eventb.core.parameter#_wxdaAA35Ee-bMZTDvaEJhw" org.eventb.core.type="PASSWORD"/> - <org.eventb.core.scParameter name="user" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxXTYA35Ee-bMZTDvaEJhw|org.eventb.core.parameter#_wxaWsA35Ee-bMZTDvaEJhw" org.eventb.core.type="USER"/> - </org.eventb.core.scEvent> - <org.eventb.core.scEvent name="dentist_treatmentx" org.eventb.core.accurate="true" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.label="logoutUser" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5BpoQ36Ee-bMZTDvaEJhw"> - <org.eventb.core.scRefinesEvent name="'" org.eventb.core.scTarget="/UserManagement/UserMachine.bcm|org.eventb.core.scMachineFile#UserMachine|org.eventb.core.scEvent#UserContey*" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5BpoQ36Ee-bMZTDvaEJhw|org.eventb.core.refinesEvent#_F5CQsA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.scGuard name="'" org.eventb.core.label="grd0" org.eventb.core.predicate="user∈dom(loggedin)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxpAMA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wxwU8A35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="(" org.eventb.core.label="grd1" org.eventb.core.predicate="password=loggedin(user)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxpAMA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wx0mYA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scAction name="passwore" org.eventb.core.assignment="loggedin ≔ loggedin ∖ {user ↦ password}" org.eventb.core.label="act0" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxpAMA35Ee-bMZTDvaEJhw|org.eventb.core.action#_wx4QwA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.scParameter name="password" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxpAMA35Ee-bMZTDvaEJhw|org.eventb.core.parameter#_wxt4sA35Ee-bMZTDvaEJhw" org.eventb.core.type="PASSWORD"/> - <org.eventb.core.scParameter name="user" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxpAMA35Ee-bMZTDvaEJhw|org.eventb.core.parameter#_wxq1YA35Ee-bMZTDvaEJhw" org.eventb.core.type="USER"/> - </org.eventb.core.scEvent> - <org.eventb.core.scEvent name="dentist_treatmenty" org.eventb.core.accurate="true" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.label="setRootAdmins" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5CQsQ36Ee-bMZTDvaEJhw"> - <org.eventb.core.scRefinesEvent name="'" org.eventb.core.scTarget="/UserManagement/UserMachine.bcm|org.eventb.core.scMachineFile#UserMachine|org.eventb.core.scEvent#UserContey'" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5CQsQ36Ee-bMZTDvaEJhw|org.eventb.core.refinesEvent#_F5C3wA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.scGuard name="'" org.eventb.core.label="grd0" org.eventb.core.predicate="root∈USER" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wwfwsA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wwo6oA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="(" org.eventb.core.label="grd1" org.eventb.core.predicate="root_password∈PASSWORD" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wwfwsA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wwslAA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name=")" org.eventb.core.label="grd2" org.eventb.core.predicate="admin=(∅ ⦂ ℙ(USER×PASSWORD))" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wwfwsA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wwuaMA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scAction name="root_passwore" org.eventb.core.assignment="admin ≔ {root ↦ root_password}" org.eventb.core.label="act0" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wwfwsA35Ee-bMZTDvaEJhw|org.eventb.core.action#_www2cA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.scAction name="root_passworf" org.eventb.core.assignment="registered ≔ {root ↦ root_password}" org.eventb.core.label="act1" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wwfwsA35Ee-bMZTDvaEJhw|org.eventb.core.action#_ww-R0A35Ee-bMZTDvaEJhw"/> - <org.eventb.core.scParameter name="root_password" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wwfwsA35Ee-bMZTDvaEJhw|org.eventb.core.parameter#_wwnFcA35Ee-bMZTDvaEJhw" org.eventb.core.type="PASSWORD"/> - <org.eventb.core.scParameter name="root" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wwfwsA35Ee-bMZTDvaEJhw|org.eventb.core.parameter#_wwhl4A35Ee-bMZTDvaEJhw" org.eventb.core.type="USER"/> - </org.eventb.core.scEvent> - <org.eventb.core.scEvent name="dentist_treatmentz" org.eventb.core.accurate="true" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.label="changePatientPassword" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5C3wQ36Ee-bMZTDvaEJhw"> - <org.eventb.core.scRefinesEvent name="'" org.eventb.core.scTarget="/UserManagement/UserMachine.bcm|org.eventb.core.scMachineFile#UserMachine|org.eventb.core.scEvent#UserContey+" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5C3wQ36Ee-bMZTDvaEJhw|org.eventb.core.refinesEvent#_F5De0A36Ee-bMZTDvaEJhw"/> - <org.eventb.core.scGuard name="'" org.eventb.core.label="grd0" org.eventb.core.predicate="user∈dom(patient)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wx5e4A35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wx-XYA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="(" org.eventb.core.label="grd1" org.eventb.core.predicate="password=loggedin(user)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wx5e4A35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wx_lgA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name=")" org.eventb.core.label="grd2" org.eventb.core.predicate="new_password∈PASSWORD" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wx5e4A35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wyAMkA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="*" org.eventb.core.label="grd3" org.eventb.core.predicate="user∈dom(loggedin)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wx5e4A35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wyCo0A35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scAction name="new_passwore" org.eventb.core.assignment="loggedin ≔ loggedin{user ↦ new_password}" org.eventb.core.label="act0" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wx5e4A35Ee-bMZTDvaEJhw|org.eventb.core.action#_wyD28A35Ee-bMZTDvaEJhw"/> - <org.eventb.core.scAction name="new_passworf" org.eventb.core.assignment="registered ≔ registered{user ↦ new_password}" org.eventb.core.label="act1" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wx5e4A35Ee-bMZTDvaEJhw|org.eventb.core.action#_wyFFEA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.scAction name="new_passworg" org.eventb.core.assignment="patient ≔ patient{user ↦ new_password}" org.eventb.core.label="act2" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wx5e4A35Ee-bMZTDvaEJhw|org.eventb.core.action#_wyFsIA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.scParameter name="password" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wx5e4A35Ee-bMZTDvaEJhw|org.eventb.core.parameter#_wx9JQA35Ee-bMZTDvaEJhw" org.eventb.core.type="PASSWORD"/> - <org.eventb.core.scParameter name="new_password" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wx5e4A35Ee-bMZTDvaEJhw|org.eventb.core.parameter#_wx9wUA35Ee-bMZTDvaEJhw" org.eventb.core.type="PASSWORD"/> - <org.eventb.core.scParameter name="user" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wx5e4A35Ee-bMZTDvaEJhw|org.eventb.core.parameter#_wx8iMA35Ee-bMZTDvaEJhw" org.eventb.core.type="USER"/> - </org.eventb.core.scEvent> - <org.eventb.core.scEvent name="dentist_treatment{" org.eventb.core.accurate="true" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.label="changeDentistPassword" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5De0Q36Ee-bMZTDvaEJhw"> - <org.eventb.core.scRefinesEvent name="'" org.eventb.core.scTarget="/UserManagement/UserMachine.bcm|org.eventb.core.scMachineFile#UserMachine|org.eventb.core.scEvent#UserContey," org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5De0Q36Ee-bMZTDvaEJhw|org.eventb.core.refinesEvent#_F5De0g36Ee-bMZTDvaEJhw"/> - <org.eventb.core.scGuard name="'" org.eventb.core.label="grd0" org.eventb.core.predicate="user∈dom(dentist)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyG6QA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wyJ9kA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="(" org.eventb.core.label="grd1" org.eventb.core.predicate="password=loggedin(user)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyG6QA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wyO2EA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name=")" org.eventb.core.label="grd2" org.eventb.core.predicate="new_password∈PASSWORD" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyG6QA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wyQEMA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="*" org.eventb.core.label="grd3" org.eventb.core.predicate="user∈dom(loggedin)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyG6QA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wyR5YA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scAction name="new_passwore" org.eventb.core.assignment="loggedin ≔ loggedin{user ↦ new_password}" org.eventb.core.label="act0" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyG6QA35Ee-bMZTDvaEJhw|org.eventb.core.action#_wyTHgA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.scAction name="new_passworf" org.eventb.core.assignment="registered ≔ registered{user ↦ new_password}" org.eventb.core.label="act1" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyG6QA35Ee-bMZTDvaEJhw|org.eventb.core.action#_wyTukA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.scAction name="new_passworg" org.eventb.core.assignment="dentist ≔ dentist{user ↦ new_password}" org.eventb.core.label="act2" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyG6QA35Ee-bMZTDvaEJhw|org.eventb.core.action#_wyU8sA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.scParameter name="password" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyG6QA35Ee-bMZTDvaEJhw|org.eventb.core.parameter#_wyIvcA35Ee-bMZTDvaEJhw" org.eventb.core.type="PASSWORD"/> - <org.eventb.core.scParameter name="new_password" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyG6QA35Ee-bMZTDvaEJhw|org.eventb.core.parameter#_wyJWgA35Ee-bMZTDvaEJhw" org.eventb.core.type="PASSWORD"/> - <org.eventb.core.scParameter name="user" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyG6QA35Ee-bMZTDvaEJhw|org.eventb.core.parameter#_wyIIYA35Ee-bMZTDvaEJhw" org.eventb.core.type="USER"/> - </org.eventb.core.scEvent> - <org.eventb.core.scEvent name="dentist_treatment|" org.eventb.core.accurate="true" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.label="changeAdminPassword" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5EF4A36Ee-bMZTDvaEJhw"> - <org.eventb.core.scRefinesEvent name="'" org.eventb.core.scTarget="/UserManagement/UserMachine.bcm|org.eventb.core.scMachineFile#UserMachine|org.eventb.core.scEvent#UserContey-" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5EF4A36Ee-bMZTDvaEJhw|org.eventb.core.refinesEvent#_F5FUAA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.scGuard name="'" org.eventb.core.label="grd0" org.eventb.core.predicate="user∈dom(admin)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyWK0A35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wyZ1MA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="(" org.eventb.core.label="grd1" org.eventb.core.predicate="password=loggedin(user)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyWK0A35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wybDUA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name=")" org.eventb.core.label="grd2" org.eventb.core.predicate="new_password∈PASSWORD" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyWK0A35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wyc4gA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="*" org.eventb.core.label="grd3" org.eventb.core.predicate="user∈dom(loggedin)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyWK0A35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wyetsA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scAction name="new_passwore" org.eventb.core.assignment="loggedin ≔ loggedin{user ↦ new_password}" org.eventb.core.label="act0" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyWK0A35Ee-bMZTDvaEJhw|org.eventb.core.action#_wyf70A35Ee-bMZTDvaEJhw"/> - <org.eventb.core.scAction name="new_passworf" org.eventb.core.assignment="registered ≔ registered{user ↦ new_password}" org.eventb.core.label="act1" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyWK0A35Ee-bMZTDvaEJhw|org.eventb.core.action#_wyhJ8A35Ee-bMZTDvaEJhw"/> - <org.eventb.core.scAction name="new_passworg" org.eventb.core.assignment="admin ≔ admin{user ↦ new_password}" org.eventb.core.label="act2" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyWK0A35Ee-bMZTDvaEJhw|org.eventb.core.action#_wyiYEA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.scParameter name="password" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyWK0A35Ee-bMZTDvaEJhw|org.eventb.core.parameter#_wyYAAA35Ee-bMZTDvaEJhw" org.eventb.core.type="PASSWORD"/> - <org.eventb.core.scParameter name="new_password" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyWK0A35Ee-bMZTDvaEJhw|org.eventb.core.parameter#_wyYnEA35Ee-bMZTDvaEJhw" org.eventb.core.type="PASSWORD"/> - <org.eventb.core.scParameter name="user" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyWK0A35Ee-bMZTDvaEJhw|org.eventb.core.parameter#_wyXY8A35Ee-bMZTDvaEJhw" org.eventb.core.type="USER"/> - </org.eventb.core.scEvent> - <org.eventb.core.scEvent name="dentist_treatment}" org.eventb.core.accurate="true" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.label="AdminRegisterPatientToDentist" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5FUAQ36Ee-bMZTDvaEJhw"> - <org.eventb.core.scRefinesEvent name="'" org.eventb.core.scTarget="/UserManagement/UserMachine.bcm|org.eventb.core.scMachineFile#UserMachine|org.eventb.core.scEvent#UserContey." org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5FUAQ36Ee-bMZTDvaEJhw|org.eventb.core.refinesEvent#_F5FUAg36Ee-bMZTDvaEJhw"/> - <org.eventb.core.scGuard name="'" org.eventb.core.label="grd0" org.eventb.core.predicate="user∈dom(admin)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyjmMA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wyulUA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="(" org.eventb.core.label="grd1" org.eventb.core.predicate="password=loggedin(user)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyjmMA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wyvzcA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name=")" org.eventb.core.label="grd2" org.eventb.core.predicate="register_user∈dom(patient)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyjmMA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wyxBkA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="*" org.eventb.core.label="grd3" org.eventb.core.predicate="user∈dom(loggedin)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyjmMA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wyyPsA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scAction name="register_uses" org.eventb.core.assignment="dentist ≔ dentist∪({register_user} ◁ patient)" org.eventb.core.label="act0" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyjmMA35Ee-bMZTDvaEJhw|org.eventb.core.action#_wyzd0A35Ee-bMZTDvaEJhw"/> - <org.eventb.core.scAction name="register_uset" org.eventb.core.assignment="patient ≔ patient ∖ ({register_user} ◁ patient)" org.eventb.core.label="act1" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyjmMA35Ee-bMZTDvaEJhw|org.eventb.core.action#_wy1TAA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.scParameter name="register_user" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyjmMA35Ee-bMZTDvaEJhw|org.eventb.core.parameter#_wyt-QA35Ee-bMZTDvaEJhw" org.eventb.core.type="USER"/> - <org.eventb.core.scParameter name="password" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyjmMA35Ee-bMZTDvaEJhw|org.eventb.core.parameter#_wytXMA35Ee-bMZTDvaEJhw" org.eventb.core.type="PASSWORD"/> - <org.eventb.core.scParameter name="user" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyjmMA35Ee-bMZTDvaEJhw|org.eventb.core.parameter#_wyq68A35Ee-bMZTDvaEJhw" org.eventb.core.type="USER"/> - <org.eventb.core.scAction name="register_useu" org.eventb.core.assignment="nhs_num ≔ nhs_num ∖ ({register_user} ◁ nhs_num)" org.eventb.core.label="act3" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5FUAQ36Ee-bMZTDvaEJhw|org.eventb.core.action#_F5F7EA36Ee-bMZTDvaEJhw"/> - </org.eventb.core.scEvent> - <org.eventb.core.scEvent name="dentist_treatment~" org.eventb.core.accurate="true" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.label="AdminRegisterPatientToAdministrator" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5F7EQ36Ee-bMZTDvaEJhw"> - <org.eventb.core.scRefinesEvent name="'" org.eventb.core.scTarget="/UserManagement/UserMachine.bcm|org.eventb.core.scMachineFile#UserMachine|org.eventb.core.scEvent#UserContey\/" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5F7EQ36Ee-bMZTDvaEJhw|org.eventb.core.refinesEvent#_F5GiIA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.scGuard name="'" org.eventb.core.label="grd0" org.eventb.core.predicate="user∈dom(admin)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wy16EA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wy5kcA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="(" org.eventb.core.label="grd1" org.eventb.core.predicate="password=loggedin(user)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wy16EA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wy6LgA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name=")" org.eventb.core.label="grd2" org.eventb.core.predicate="register_user∈dom(patient)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wy16EA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wy7ZoA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="*" org.eventb.core.label="grd3" org.eventb.core.predicate="user∈dom(loggedin)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wy16EA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wy8nwA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scAction name="register_uses" org.eventb.core.assignment="admin ≔ admin∪({register_user} ◁ patient)" org.eventb.core.label="act0" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wy16EA35Ee-bMZTDvaEJhw|org.eventb.core.action#_wzASIA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.scAction name="register_uset" org.eventb.core.assignment="patient ≔ patient ∖ ({register_user} ◁ patient)" org.eventb.core.label="act1" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wy16EA35Ee-bMZTDvaEJhw|org.eventb.core.action#_wzGYwA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.scParameter name="register_user" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wy16EA35Ee-bMZTDvaEJhw|org.eventb.core.parameter#_wy49YA35Ee-bMZTDvaEJhw" org.eventb.core.type="USER"/> - <org.eventb.core.scParameter name="password" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wy16EA35Ee-bMZTDvaEJhw|org.eventb.core.parameter#_wy3vQA35Ee-bMZTDvaEJhw" org.eventb.core.type="PASSWORD"/> - <org.eventb.core.scParameter name="user" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wy16EA35Ee-bMZTDvaEJhw|org.eventb.core.parameter#_wy3IMA35Ee-bMZTDvaEJhw" org.eventb.core.type="USER"/> - <org.eventb.core.scAction name="register_useu" org.eventb.core.assignment="nhs_num ≔ nhs_num ∖ ({register_user} ◁ nhs_num)" org.eventb.core.label="act3" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5F7EQ36Ee-bMZTDvaEJhw|org.eventb.core.action#_F5GiIQ36Ee-bMZTDvaEJhw"/> - </org.eventb.core.scEvent> - <org.eventb.core.scEvent name="dentist_treatmenu'" org.eventb.core.accurate="true" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.label="AdminRegisterDentistToAdministrator" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5GiIg36Ee-bMZTDvaEJhw"> - <org.eventb.core.scRefinesEvent name="'" org.eventb.core.scTarget="/UserManagement/UserMachine.bcm|org.eventb.core.scMachineFile#UserMachine|org.eventb.core.scEvent#UserContey0" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5GiIg36Ee-bMZTDvaEJhw|org.eventb.core.refinesEvent#_F5HJMA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.scGuard name="'" org.eventb.core.label="grd0" org.eventb.core.predicate="user∈dom(admin)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wzMfYA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wzQJwA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="(" org.eventb.core.label="grd1" org.eventb.core.predicate="password=loggedin(user)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wzMfYA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wzQw0A35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name=")" org.eventb.core.label="grd2" org.eventb.core.predicate="register_user∈dom(dentist)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wzMfYA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wzT0IA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="*" org.eventb.core.label="grd3" org.eventb.core.predicate="user∈dom(loggedin)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wzMfYA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wzVCQA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scAction name="register_uses" org.eventb.core.assignment="admin ≔ admin∪({register_user} ◁ dentist)" org.eventb.core.label="act0" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wzMfYA35Ee-bMZTDvaEJhw|org.eventb.core.action#_wzWQYA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.scAction name="register_uset" org.eventb.core.assignment="dentist ≔ dentist ∖ ({register_user} ◁ dentist)" org.eventb.core.label="act1" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wzMfYA35Ee-bMZTDvaEJhw|org.eventb.core.action#_wzah0A35Ee-bMZTDvaEJhw"/> - <org.eventb.core.scParameter name="register_user" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wzMfYA35Ee-bMZTDvaEJhw|org.eventb.core.parameter#_wzPisA35Ee-bMZTDvaEJhw" org.eventb.core.type="USER"/> - <org.eventb.core.scParameter name="password" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wzMfYA35Ee-bMZTDvaEJhw|org.eventb.core.parameter#_wzO7oA35Ee-bMZTDvaEJhw" org.eventb.core.type="PASSWORD"/> - <org.eventb.core.scParameter name="user" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wzMfYA35Ee-bMZTDvaEJhw|org.eventb.core.parameter#_wzOUkA35Ee-bMZTDvaEJhw" org.eventb.core.type="USER"/> - </org.eventb.core.scEvent> - <org.eventb.core.scEvent name="dentist_treatmenu(" org.eventb.core.accurate="true" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.label="CancelAppointment" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5HJMQ36Ee-bMZTDvaEJhw"> - <org.eventb.core.scGuard name="'" org.eventb.core.label="grd0" org.eventb.core.predicate="pt∈dom(patient)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5HJMQ36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5I-YA36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="(" org.eventb.core.label="grd1" org.eventb.core.predicate="dent∈dom(dentist)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5HJMQ36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5I-YQ36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name=")" org.eventb.core.label="grd2" org.eventb.core.predicate="dat∈dates" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5HJMQ36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5JlcA36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="*" org.eventb.core.label="grd3" org.eventb.core.predicate="treat∈ℙ(TREATMENT)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5HJMQ36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5JlcQ36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="+" org.eventb.core.label="grd4" org.eventb.core.predicate="stat∈status" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5HJMQ36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5KMgA36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="," org.eventb.core.label="grd5" org.eventb.core.predicate="pt∈dom(loggedin)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5HJMQ36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5KMgQ36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="-" org.eventb.core.label="grd6" org.eventb.core.predicate="pt ↦ dent ↦ dat ↦ treat ↦ stat∈appointments⇒stat=booked" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5HJMQ36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5KzkA36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scParameter name="treat" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5HJMQ36Ee-bMZTDvaEJhw|org.eventb.core.parameter#_F5IXUQ36Ee-bMZTDvaEJhw" org.eventb.core.type="ℙ(TREATMENT)"/> - <org.eventb.core.scParameter name="stat" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5HJMQ36Ee-bMZTDvaEJhw|org.eventb.core.parameter#_F5IXUg36Ee-bMZTDvaEJhw" org.eventb.core.type="STATUS"/> - <org.eventb.core.scParameter name="pt" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5HJMQ36Ee-bMZTDvaEJhw|org.eventb.core.parameter#_F5HwQA36Ee-bMZTDvaEJhw" org.eventb.core.type="USER"/> - <org.eventb.core.scParameter name="dent" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5HJMQ36Ee-bMZTDvaEJhw|org.eventb.core.parameter#_F5HwQQ36Ee-bMZTDvaEJhw" org.eventb.core.type="USER"/> - <org.eventb.core.scParameter name="dat" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5HJMQ36Ee-bMZTDvaEJhw|org.eventb.core.parameter#_F5IXUA36Ee-bMZTDvaEJhw" org.eventb.core.type="ℤ"/> - <org.eventb.core.scAction name="treau" org.eventb.core.assignment="appointments ≔ appointments{pt ↦ dent ↦ dat ↦ treat ↦ cancelled}" org.eventb.core.label="act0" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5HJMQ36Ee-bMZTDvaEJhw|org.eventb.core.action#_F5KzkQ36Ee-bMZTDvaEJhw"/> - </org.eventb.core.scEvent> - <org.eventb.core.scEvent name="dentist_treatmenu)" org.eventb.core.accurate="true" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.label="RebookAppointment" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5LaoA36Ee-bMZTDvaEJhw"> - <org.eventb.core.scGuard name="'" org.eventb.core.label="grd0" org.eventb.core.predicate="pt∈dom(patient)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5LaoA36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5NP0A36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="(" org.eventb.core.label="grd1" org.eventb.core.predicate="dent∈dom(dentist)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5LaoA36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5NP0Q36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name=")" org.eventb.core.label="grd2" org.eventb.core.predicate="dat∈dates" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5LaoA36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5N24A36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="*" org.eventb.core.label="grd3" org.eventb.core.predicate="stat∈status" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5LaoA36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5N24Q36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="+" org.eventb.core.label="grd4" org.eventb.core.predicate="newDat∈dates" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5LaoA36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5Od8A36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="," org.eventb.core.label="grd5" org.eventb.core.predicate="newDat>current_date" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5LaoA36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5Od8Q36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="-" org.eventb.core.label="grd6" org.eventb.core.predicate="treatment∈dentist_treatments[{dent}]" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5LaoA36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5PFAA36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="." org.eventb.core.label="grd7" org.eventb.core.predicate="pt∈dom(loggedin)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5LaoA36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5PFAQ36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="/" org.eventb.core.label="grd8" org.eventb.core.predicate="pt ↦ dent ↦ dat ↦ treatment ↦ stat∈appointments⇒current_date − dat>2∧stat=booked" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5LaoA36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5PsEA36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scParameter name="treatment" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5LaoA36Ee-bMZTDvaEJhw|org.eventb.core.parameter#_F5MowA36Ee-bMZTDvaEJhw" org.eventb.core.type="ℙ(TREATMENT)"/> - <org.eventb.core.scParameter name="stat" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5LaoA36Ee-bMZTDvaEJhw|org.eventb.core.parameter#_F5Mowg36Ee-bMZTDvaEJhw" org.eventb.core.type="STATUS"/> - <org.eventb.core.scParameter name="pt" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5LaoA36Ee-bMZTDvaEJhw|org.eventb.core.parameter#_F5LaoQ36Ee-bMZTDvaEJhw" org.eventb.core.type="USER"/> - <org.eventb.core.scParameter name="dent" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5LaoA36Ee-bMZTDvaEJhw|org.eventb.core.parameter#_F5Laog36Ee-bMZTDvaEJhw" org.eventb.core.type="USER"/> - <org.eventb.core.scParameter name="newDat" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5LaoA36Ee-bMZTDvaEJhw|org.eventb.core.parameter#_F5MowQ36Ee-bMZTDvaEJhw" org.eventb.core.type="ℤ"/> - <org.eventb.core.scParameter name="dat" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5LaoA36Ee-bMZTDvaEJhw|org.eventb.core.parameter#_F5Laow36Ee-bMZTDvaEJhw" org.eventb.core.type="ℤ"/> - <org.eventb.core.scAction name="treatmenu" org.eventb.core.assignment="appointments ≔ appointments{pt ↦ dent ↦ newDat ↦ treatment ↦ booked}" org.eventb.core.label="act0" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5LaoA36Ee-bMZTDvaEJhw|org.eventb.core.action#_F5QTIA36Ee-bMZTDvaEJhw"/> - </org.eventb.core.scEvent> - <org.eventb.core.scEvent name="dentist_treatmenu*" org.eventb.core.accurate="true" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.label="CheckInAppointment" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5QTIQ36Ee-bMZTDvaEJhw"> - <org.eventb.core.scGuard name="'" org.eventb.core.label="grd0" org.eventb.core.predicate="pt∈dom(patient)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5QTIQ36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5RhQg36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="(" org.eventb.core.label="grd1" org.eventb.core.predicate="dent∈dom(dentist)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5QTIQ36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5SIUA36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name=")" org.eventb.core.label="grd2" org.eventb.core.predicate="dat∈dates" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5QTIQ36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5SIUQ36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="*" org.eventb.core.label="grd3" org.eventb.core.predicate="treat∈ℙ(TREATMENT)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5QTIQ36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5SIUg36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="+" org.eventb.core.label="grd4" org.eventb.core.predicate="stat∈status" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5QTIQ36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5SvYA36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="," org.eventb.core.label="grd5" org.eventb.core.predicate="pt∈dom(loggedin)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5QTIQ36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5SvYQ36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="-" org.eventb.core.label="grd6" org.eventb.core.predicate="pt ↦ dent ↦ dat ↦ treat ↦ stat∈appointments⇒current_date=dat" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5QTIQ36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5SvYg36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scParameter name="treat" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5QTIQ36Ee-bMZTDvaEJhw|org.eventb.core.parameter#_F5RhQA36Ee-bMZTDvaEJhw" org.eventb.core.type="ℙ(TREATMENT)"/> - <org.eventb.core.scParameter name="stat" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5QTIQ36Ee-bMZTDvaEJhw|org.eventb.core.parameter#_F5RhQQ36Ee-bMZTDvaEJhw" org.eventb.core.type="STATUS"/> - <org.eventb.core.scParameter name="pt" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5QTIQ36Ee-bMZTDvaEJhw|org.eventb.core.parameter#_F5Q6MA36Ee-bMZTDvaEJhw" org.eventb.core.type="USER"/> - <org.eventb.core.scParameter name="dent" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5QTIQ36Ee-bMZTDvaEJhw|org.eventb.core.parameter#_F5Q6MQ36Ee-bMZTDvaEJhw" org.eventb.core.type="USER"/> - <org.eventb.core.scParameter name="dat" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5QTIQ36Ee-bMZTDvaEJhw|org.eventb.core.parameter#_F5Q6Mg36Ee-bMZTDvaEJhw" org.eventb.core.type="ℤ"/> - <org.eventb.core.scAction name="treau" org.eventb.core.assignment="appointments ≔ appointments{pt ↦ dent ↦ dat ↦ treat ↦ checked_in}" org.eventb.core.label="act0" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5QTIQ36Ee-bMZTDvaEJhw|org.eventb.core.action#_F5TWcA36Ee-bMZTDvaEJhw"/> - </org.eventb.core.scEvent> - <org.eventb.core.scEvent name="dentist_treatmenu+" org.eventb.core.accurate="true" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.label="CompletedAppointment" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5TWcQ36Ee-bMZTDvaEJhw"> - <org.eventb.core.scGuard name="'" org.eventb.core.label="grd0" org.eventb.core.predicate="dent∈dom(dentist)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5TWcQ36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5VLoA36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="(" org.eventb.core.label="grd1" org.eventb.core.predicate="pt∈dom(patient)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5TWcQ36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5VLoQ36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name=")" org.eventb.core.label="grd2" org.eventb.core.predicate="dat∈dates" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5TWcQ36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5VysA36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="*" org.eventb.core.label="grd3" org.eventb.core.predicate="treat∈ℙ(TREATMENT)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5TWcQ36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5VysQ36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="+" org.eventb.core.label="grd4" org.eventb.core.predicate="stat∈status" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5TWcQ36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5WZwA36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="," org.eventb.core.label="grd5" org.eventb.core.predicate="dent∈dom(loggedin)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5TWcQ36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5WZwQ36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="-" org.eventb.core.label="grd6" org.eventb.core.predicate="pt ↦ dent ↦ dat ↦ treat ↦ stat∈appointments⇒current_date=dat∧stat=checked_in" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5TWcQ36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5XA0A36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scParameter name="treat" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5TWcQ36Ee-bMZTDvaEJhw|org.eventb.core.parameter#_F5UkkQ36Ee-bMZTDvaEJhw" org.eventb.core.type="ℙ(TREATMENT)"/> - <org.eventb.core.scParameter name="stat" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5TWcQ36Ee-bMZTDvaEJhw|org.eventb.core.parameter#_F5Ukkg36Ee-bMZTDvaEJhw" org.eventb.core.type="STATUS"/> - <org.eventb.core.scParameter name="pt" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5TWcQ36Ee-bMZTDvaEJhw|org.eventb.core.parameter#_F5T9gA36Ee-bMZTDvaEJhw" org.eventb.core.type="USER"/> - <org.eventb.core.scParameter name="dent" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5TWcQ36Ee-bMZTDvaEJhw|org.eventb.core.parameter#_F5T9gQ36Ee-bMZTDvaEJhw" org.eventb.core.type="USER"/> - <org.eventb.core.scParameter name="dat" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5TWcQ36Ee-bMZTDvaEJhw|org.eventb.core.parameter#_F5UkkA36Ee-bMZTDvaEJhw" org.eventb.core.type="ℤ"/> - <org.eventb.core.scAction name="treau" org.eventb.core.assignment="appointments ≔ appointments{pt ↦ dent ↦ dat ↦ treat ↦ completed}" org.eventb.core.label="act0" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5TWcQ36Ee-bMZTDvaEJhw|org.eventb.core.action#_F5XA0Q36Ee-bMZTDvaEJhw"/> - </org.eventb.core.scEvent> - <org.eventb.core.scEvent name="dentist_treatmenu," org.eventb.core.accurate="true" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.label="MissedAppointment" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5Xn4A36Ee-bMZTDvaEJhw"> - <org.eventb.core.scGuard name="'" org.eventb.core.label="grd0" org.eventb.core.predicate="ad∈dom(admin)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5Xn4A36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5ZdEA36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="(" org.eventb.core.label="grd1" org.eventb.core.predicate="pt∈dom(patient)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5Xn4A36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5ZdEQ36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name=")" org.eventb.core.label="grd2" org.eventb.core.predicate="dent∈dom(dentist)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5Xn4A36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5aEIA36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="*" org.eventb.core.label="grd3" org.eventb.core.predicate="dat∈dates" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5Xn4A36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5arMA36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="+" org.eventb.core.label="grd4" org.eventb.core.predicate="stat∈status" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5Xn4A36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5arMQ36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="," org.eventb.core.label="grd5" org.eventb.core.predicate="treat∈ℙ(TREATMENT)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5Xn4A36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5arMg36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="-" org.eventb.core.label="grd6" org.eventb.core.predicate="ad∈dom(loggedin)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5Xn4A36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5bSQA36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="." org.eventb.core.label="grd7" org.eventb.core.predicate="pt ↦ dent ↦ dat ↦ treat ↦ stat∈appointments⇒current_date>dat∧stat=booked" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5Xn4A36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5bSQQ36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scParameter name="treat" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5Xn4A36Ee-bMZTDvaEJhw|org.eventb.core.parameter#_F5Y2AQ36Ee-bMZTDvaEJhw" org.eventb.core.type="ℙ(TREATMENT)"/> - <org.eventb.core.scParameter name="stat" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5Xn4A36Ee-bMZTDvaEJhw|org.eventb.core.parameter#_F5Y2Ag36Ee-bMZTDvaEJhw" org.eventb.core.type="STATUS"/> - <org.eventb.core.scParameter name="ad" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5Xn4A36Ee-bMZTDvaEJhw|org.eventb.core.parameter#_F5YO8A36Ee-bMZTDvaEJhw" org.eventb.core.type="USER"/> - <org.eventb.core.scParameter name="pt" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5Xn4A36Ee-bMZTDvaEJhw|org.eventb.core.parameter#_F5YO8Q36Ee-bMZTDvaEJhw" org.eventb.core.type="USER"/> - <org.eventb.core.scParameter name="dent" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5Xn4A36Ee-bMZTDvaEJhw|org.eventb.core.parameter#_F5YO8g36Ee-bMZTDvaEJhw" org.eventb.core.type="USER"/> - <org.eventb.core.scParameter name="dat" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5Xn4A36Ee-bMZTDvaEJhw|org.eventb.core.parameter#_F5Y2AA36Ee-bMZTDvaEJhw" org.eventb.core.type="ℤ"/> - <org.eventb.core.scAction name="treau" org.eventb.core.assignment="appointments ≔ appointments{pt ↦ dent ↦ dat ↦ treat ↦ missed}" org.eventb.core.label="act0" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5Xn4A36Ee-bMZTDvaEJhw|org.eventb.core.action#_F5b5UA36Ee-bMZTDvaEJhw"/> - </org.eventb.core.scEvent> - <org.eventb.core.scEvent name="dentist_treatmenu-" org.eventb.core.accurate="true" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.label="CheckOverdueAppointments" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5cgYA36Ee-bMZTDvaEJhw"> - <org.eventb.core.scGuard name="'" org.eventb.core.label="grd0" org.eventb.core.predicate="pt∈dom(patient)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5cgYA36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5dugQ36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="(" org.eventb.core.label="grd1" org.eventb.core.predicate="dent∈dom(dentist)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5cgYA36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5eVkA36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name=")" org.eventb.core.label="grd2" org.eventb.core.predicate="dat∈dates" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5cgYA36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5eVkQ36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="*" org.eventb.core.label="grd3" org.eventb.core.predicate="treat∈ℙ(TREATMENT)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5cgYA36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5eVkg36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="+" org.eventb.core.label="grd4" org.eventb.core.predicate="stat∈status" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5cgYA36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5e8oA36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="," org.eventb.core.label="grd5" org.eventb.core.predicate="pt ↦ dent ↦ dat ↦ treat ↦ stat∈appointments⇒current_date>dat∧stat=booked" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5cgYA36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5e8oQ36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scParameter name="treat" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5cgYA36Ee-bMZTDvaEJhw|org.eventb.core.parameter#_F5dHcg36Ee-bMZTDvaEJhw" org.eventb.core.type="ℙ(TREATMENT)"/> - <org.eventb.core.scParameter name="stat" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5cgYA36Ee-bMZTDvaEJhw|org.eventb.core.parameter#_F5dugA36Ee-bMZTDvaEJhw" org.eventb.core.type="STATUS"/> - <org.eventb.core.scParameter name="pt" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5cgYA36Ee-bMZTDvaEJhw|org.eventb.core.parameter#_F5cgYQ36Ee-bMZTDvaEJhw" org.eventb.core.type="USER"/> - <org.eventb.core.scParameter name="dent" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5cgYA36Ee-bMZTDvaEJhw|org.eventb.core.parameter#_F5dHcA36Ee-bMZTDvaEJhw" org.eventb.core.type="USER"/> - <org.eventb.core.scParameter name="dat" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5cgYA36Ee-bMZTDvaEJhw|org.eventb.core.parameter#_F5dHcQ36Ee-bMZTDvaEJhw" org.eventb.core.type="ℤ"/> - <org.eventb.core.scAction name="treau" org.eventb.core.assignment="appointments ≔ appointments{pt ↦ dent ↦ dat ↦ treat ↦ missed}" org.eventb.core.label="act0" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5cgYA36Ee-bMZTDvaEJhw|org.eventb.core.action#_F5e8og36Ee-bMZTDvaEJhw"/> - </org.eventb.core.scEvent> - <org.eventb.core.scEvent name="dentist_treatmenu." org.eventb.core.accurate="true" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.label="GetsPatientAppointmentRecord" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5fjsA36Ee-bMZTDvaEJhw"> - <org.eventb.core.scGuard name="'" org.eventb.core.label="grd0" org.eventb.core.predicate="patient_nhs_number∈nhs_num" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5fjsA36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5gKwQ36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="(" org.eventb.core.label="grd1" org.eventb.core.predicate="appointment_records_result⊆appointments" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5fjsA36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5gKwg36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name=")" org.eventb.core.label="grd2 user ∈ USER 	 	@grd3" org.eventb.core.predicate="pt∈patient" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5fjsA36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5gKww36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="*" org.eventb.core.label="grd4 pt ≔ dom(nhs_num) 	 	@grd5" org.eventb.core.predicate="user∈dom(admin)∪dom(dentist)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5fjsA36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5gx0A36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="+" org.eventb.core.label="grd6" org.eventb.core.predicate="user∈dom(loggedin)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5fjsA36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5gx0Q36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scParameter name="pt" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5fjsA36Ee-bMZTDvaEJhw|org.eventb.core.parameter#_F5gKwA36Ee-bMZTDvaEJhw" org.eventb.core.type="USER×PASSWORD"/> - <org.eventb.core.scParameter name="appointment_records_result" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5fjsA36Ee-bMZTDvaEJhw|org.eventb.core.parameter#_F5fjsg36Ee-bMZTDvaEJhw" org.eventb.core.type="ℙ(USER×USER×ℤ×ℙ(TREATMENT)×STATUS)"/> - <org.eventb.core.scParameter name="patient_nhs_number" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5fjsA36Ee-bMZTDvaEJhw|org.eventb.core.parameter#_F5fjsQ36Ee-bMZTDvaEJhw" org.eventb.core.type="USER×NHSNUM"/> - <org.eventb.core.scParameter name="user" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5fjsA36Ee-bMZTDvaEJhw|org.eventb.core.parameter#_F5fjsw36Ee-bMZTDvaEJhw" org.eventb.core.type="USER"/> - </org.eventb.core.scEvent> - <org.eventb.core.scEvent name="dentist_treatmenu/" org.eventb.core.accurate="true" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.label="GetsBookedAppointmentonASpecificDay" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5gx0g36Ee-bMZTDvaEJhw"> - <org.eventb.core.scGuard name="'" org.eventb.core.label="grd0" org.eventb.core.predicate="patient_nhs_number∈nhs_num" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5gx0g36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5h_8g36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="(" org.eventb.core.label="grd1" org.eventb.core.predicate="appointment_records_result⊆appointments" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5gx0g36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5inAA36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name=")" org.eventb.core.label="grd2 user ∈ USER 	 	@grd3" org.eventb.core.predicate="pt∈patient" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5gx0g36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5inAQ36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="*" org.eventb.core.label="grd4" org.eventb.core.predicate="date_specified∈dates" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5gx0g36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5inAg36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="+" org.eventb.core.label="grd5" org.eventb.core.predicate="user∈dom(patient)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5gx0g36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5jOEA36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scParameter name="pt" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5gx0g36Ee-bMZTDvaEJhw|org.eventb.core.parameter#_F5h_8A36Ee-bMZTDvaEJhw" org.eventb.core.type="USER×PASSWORD"/> - <org.eventb.core.scParameter name="appointment_records_result" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5gx0g36Ee-bMZTDvaEJhw|org.eventb.core.parameter#_F5hY4Q36Ee-bMZTDvaEJhw" org.eventb.core.type="ℙ(USER×USER×ℤ×ℙ(TREATMENT)×STATUS)"/> - <org.eventb.core.scParameter name="patient_nhs_number" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5gx0g36Ee-bMZTDvaEJhw|org.eventb.core.parameter#_F5hY4A36Ee-bMZTDvaEJhw" org.eventb.core.type="USER×NHSNUM"/> - <org.eventb.core.scParameter name="user" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5gx0g36Ee-bMZTDvaEJhw|org.eventb.core.parameter#_F5hY4g36Ee-bMZTDvaEJhw" org.eventb.core.type="USER"/> - <org.eventb.core.scParameter name="date_specified" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5gx0g36Ee-bMZTDvaEJhw|org.eventb.core.parameter#_F5h_8Q36Ee-bMZTDvaEJhw" org.eventb.core.type="ℤ"/> - </org.eventb.core.scEvent> - <org.eventb.core.scEvent name="dentist_treatmenu0" org.eventb.core.accurate="true" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.label="GetsPatientsTreatmentRecord" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5jOEQ36Ee-bMZTDvaEJhw"> - <org.eventb.core.scGuard name="'" org.eventb.core.label="grd0" org.eventb.core.predicate="password=loggedin(pt)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5jOEQ36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5j1Iw36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="(" org.eventb.core.label="grd1" org.eventb.core.predicate="user∈dom(loggedin)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5jOEQ36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5j1JA36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name=")" org.eventb.core.label="grd2" org.eventb.core.predicate="treatment_record∈treatments" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5jOEQ36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5kcMA36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="*" org.eventb.core.label="grd3" org.eventb.core.predicate="user∈dom(patient)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5jOEQ36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5kcMQ36Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scParameter name="pt" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5jOEQ36Ee-bMZTDvaEJhw|org.eventb.core.parameter#_F5jOEg36Ee-bMZTDvaEJhw" org.eventb.core.type="USER"/> - <org.eventb.core.scParameter name="treatment_record" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5jOEQ36Ee-bMZTDvaEJhw|org.eventb.core.parameter#_F5j1IA36Ee-bMZTDvaEJhw" org.eventb.core.type="TREATMENT"/> - <org.eventb.core.scParameter name="password" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5jOEQ36Ee-bMZTDvaEJhw|org.eventb.core.parameter#_F5j1Ig36Ee-bMZTDvaEJhw" org.eventb.core.type="PASSWORD"/> - <org.eventb.core.scParameter name="user" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5jOEQ36Ee-bMZTDvaEJhw|org.eventb.core.parameter#_F5j1IQ36Ee-bMZTDvaEJhw" org.eventb.core.type="USER"/> - </org.eventb.core.scEvent> -</org.eventb.core.scMachineFile> diff --git a/UserManagement/AppointmentMachine.bpo b/UserManagement/AppointmentMachine.bpo deleted file mode 100644 index 3cd8390052716ccc15a92d9eaa99f80d6d69a42e..0000000000000000000000000000000000000000 --- a/UserManagement/AppointmentMachine.bpo +++ /dev/null @@ -1,548 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<org.eventb.core.poFile org.eventb.core.poStamp="154"> - <org.eventb.core.poPredicateSet name="CTXHYP" org.eventb.core.poStamp="41"> - <org.eventb.core.poIdentifier name="STATUS" org.eventb.core.type="ℙ(STATUS)"/> - <org.eventb.core.poIdentifier name="TREATMENT" org.eventb.core.type="ℙ(TREATMENT)"/> - <org.eventb.core.poIdentifier name="DATE" org.eventb.core.type="ℙ(DATE)"/> - <org.eventb.core.poIdentifier name="NHSNUM" org.eventb.core.type="ℙ(NHSNUM)"/> - <org.eventb.core.poIdentifier name="USER" org.eventb.core.type="ℙ(USER)"/> - <org.eventb.core.poIdentifier name="PASSWORD" org.eventb.core.type="ℙ(PASSWORD)"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poPredicateSet name="ABSHYP" org.eventb.core.parentSet="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#CTXHYP" org.eventb.core.poStamp="152"> - <org.eventb.core.poIdentifier name="current_date" org.eventb.core.type="ℤ"/> - <org.eventb.core.poIdentifier name="appointments" org.eventb.core.type="ℙ(USER×USER×ℤ×ℙ(TREATMENT)×STATUS)"/> - <org.eventb.core.poIdentifier name="completed" org.eventb.core.type="STATUS"/> - <org.eventb.core.poIdentifier name="loggedin" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.poIdentifier name="nhs_num" org.eventb.core.type="ℙ(USER×NHSNUM)"/> - <org.eventb.core.poIdentifier name="dates" org.eventb.core.type="ℙ(ℤ)"/> - <org.eventb.core.poIdentifier name="patient" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.poIdentifier name="treatments" org.eventb.core.type="ℙ(TREATMENT)"/> - <org.eventb.core.poIdentifier name="booked" org.eventb.core.type="STATUS"/> - <org.eventb.core.poIdentifier name="cancelled" org.eventb.core.type="STATUS"/> - <org.eventb.core.poIdentifier name="status" org.eventb.core.type="ℙ(STATUS)"/> - <org.eventb.core.poIdentifier name="missed" org.eventb.core.type="STATUS"/> - <org.eventb.core.poIdentifier name="dentist" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.poIdentifier name="checked_in" org.eventb.core.type="STATUS"/> - <org.eventb.core.poIdentifier name="registered" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.poIdentifier name="admin" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.poIdentifier name="dentist_treatments" org.eventb.core.type="ℙ(USER×ℙ(TREATMENT))"/> - <org.eventb.core.poPredicate name="dentist_treatmentt" org.eventb.core.predicate="admin∈USER ⇸ PASSWORD" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wv7I8A35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="dentist_treatmentu" org.eventb.core.predicate="dentist∈USER ⇸ PASSWORD" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wv-MQA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="dentist_treatmentv" org.eventb.core.predicate="patient∈USER ⇸ PASSWORD" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wv_aYA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="dentist_treatmentw" org.eventb.core.predicate="dom(admin)⊆USER" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwB2oA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="dentist_treatmentx" org.eventb.core.predicate="dom(dentist)⊆USER" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwJLYA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="dentist_treatmenty" org.eventb.core.predicate="dom(patient)⊆USER" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwMOsA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="dentist_treatmentz" org.eventb.core.predicate="admin∩dentist∩patient=(∅ ⦂ ℙ(USER×PASSWORD))" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwOq8A35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="dentist_treatment{" org.eventb.core.predicate="registered=admin∪dentist∪patient" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwQgIA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="dentist_treatment|" org.eventb.core.predicate="loggedin⊆registered" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwVYoA35Ee-bMZTDvaEJhw"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poSequent name="INITIALISATION/inv1/INV" org.eventb.core.accurate="false" org.eventb.core.poDesc="Invariant establishment" org.eventb.core.poStamp="154"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#EVTALLHYPdentist_treatmentt"/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="(∅ ⦂ ℙ(ℤ))⊆ℕ" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.invariant#_F401UA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="ABSTRACT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wwWmwA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="CONCRETE" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F434oA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYT" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.invariant#_F401UA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#CTXHYP" org.eventb.core.poSelHintSnd="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poSequent#INITIALISATION\/inv1\/INV|org.eventb.core.poPredicateSet#SEQHYP"/> - <org.eventb.core.poSelHint name="SEQHYV" org.eventb.core.poSelHintFst="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD1"/> - </org.eventb.core.poSequent> - <org.eventb.core.poSequent name="INITIALISATION/inv3/INV" org.eventb.core.accurate="false" org.eventb.core.poDesc="Invariant establishment" org.eventb.core.poStamp="154"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#EVTALLHYPdentist_treatmentt"/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="(∅ ⦂ ℙ(USER×USER×ℤ×ℙ(TREATMENT)×STATUS))⊆dom(∅ ⦂ ℙ(USER×PASSWORD)) × dom(∅ ⦂ ℙ(USER×PASSWORD)) × (∅ ⦂ ℙ(ℤ)) × ℙ(TREATMENT) × (∅ ⦂ ℙ(STATUS))" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.invariant#_F41cYA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="ABSTRACT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wwWmwA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="CONCRETE" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F434oA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYT" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.invariant#_F41cYA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#CTXHYP" org.eventb.core.poSelHintSnd="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poSequent#INITIALISATION\/inv3\/INV|org.eventb.core.poPredicateSet#SEQHYP"/> - <org.eventb.core.poSelHint name="SEQHYV" org.eventb.core.poSelHintFst="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD3"/> - </org.eventb.core.poSequent> - <org.eventb.core.poSequent name="INITIALISATION/inv4/INV" org.eventb.core.accurate="false" org.eventb.core.poDesc="Invariant establishment" org.eventb.core.poStamp="154"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#EVTALLHYPdentist_treatmentt"/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="(∅ ⦂ ℙ(USER×ℙ(TREATMENT)))⊆dom(∅ ⦂ ℙ(USER×PASSWORD)) × ℙ(∅ ⦂ ℙ(TREATMENT))" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.invariant#_F42DcA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="ABSTRACT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wwWmwA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="CONCRETE" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F434oA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYT" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.invariant#_F42DcA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#CTXHYP" org.eventb.core.poSelHintSnd="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poSequent#INITIALISATION\/inv4\/INV|org.eventb.core.poPredicateSet#SEQHYP"/> - <org.eventb.core.poSelHint name="SEQHYV" org.eventb.core.poSelHintFst="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD4"/> - </org.eventb.core.poSequent> - <org.eventb.core.poSequent name="INITIALISATION/inv5/INV" org.eventb.core.accurate="false" org.eventb.core.poDesc="Invariant establishment" org.eventb.core.poStamp="154"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#EVTALLHYPdentist_treatmentt"/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="10124∈ℕ" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.invariant#_F42DcQ36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="ABSTRACT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wwWmwA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="CONCRETE" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F434oA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYT" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.invariant#_F42DcQ36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#CTXHYP" org.eventb.core.poSelHintSnd="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poSequent#INITIALISATION\/inv5\/INV|org.eventb.core.poPredicateSet#SEQHYP"/> - <org.eventb.core.poSelHint name="SEQHYV" org.eventb.core.poSelHintFst="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD5"/> - </org.eventb.core.poSequent> - <org.eventb.core.poSequent name="INITIALISATION/inv8/INV" org.eventb.core.accurate="false" org.eventb.core.poDesc="Invariant establishment" org.eventb.core.poStamp="154"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#EVTALLHYPdentist_treatmentt"/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="partition(∅ ⦂ ℙ(STATUS),{booked'},{checked_in'},{cancelled'},{missed'},{completed'})" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.invariant#_F43RkQ36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="ABSTRACT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wwWmwA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="CONCRETE" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F434oA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYT" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.invariant#_F43RkQ36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#CTXHYP" org.eventb.core.poSelHintSnd="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poSequent#INITIALISATION\/inv8\/INV|org.eventb.core.poPredicateSet#SEQHYP"/> - <org.eventb.core.poSelHint name="SEQHYV" org.eventb.core.poSelHintFst="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD8"/> - </org.eventb.core.poSequent> - <org.eventb.core.poPredicateSet name="EVTIDENTdentist_treatmentt" org.eventb.core.parentSet="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#CTXHYP" org.eventb.core.poStamp="41"> - <org.eventb.core.poIdentifier name="missed'" org.eventb.core.type="STATUS"/> - <org.eventb.core.poIdentifier name="loggedin'" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.poIdentifier name="registered'" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.poIdentifier name="appointments'" org.eventb.core.type="ℙ(USER×USER×ℤ×ℙ(TREATMENT)×STATUS)"/> - <org.eventb.core.poIdentifier name="current_date'" org.eventb.core.type="ℤ"/> - <org.eventb.core.poIdentifier name="admin'" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.poIdentifier name="booked'" org.eventb.core.type="STATUS"/> - <org.eventb.core.poIdentifier name="treatments'" org.eventb.core.type="ℙ(TREATMENT)"/> - <org.eventb.core.poIdentifier name="nhs_num'" org.eventb.core.type="ℙ(USER×NHSNUM)"/> - <org.eventb.core.poIdentifier name="checked_in'" org.eventb.core.type="STATUS"/> - <org.eventb.core.poIdentifier name="patient'" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.poIdentifier name="completed'" org.eventb.core.type="STATUS"/> - <org.eventb.core.poIdentifier name="status'" org.eventb.core.type="ℙ(STATUS)"/> - <org.eventb.core.poIdentifier name="dates'" org.eventb.core.type="ℙ(ℤ)"/> - <org.eventb.core.poIdentifier name="dentist'" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.poIdentifier name="cancelled'" org.eventb.core.type="STATUS"/> - <org.eventb.core.poIdentifier name="dentist_treatments'" org.eventb.core.type="ℙ(USER×ℙ(TREATMENT))"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poPredicateSet name="EVTALLHYPdentist_treatmentt" org.eventb.core.parentSet="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#EVTIDENTdentist_treatmentt" org.eventb.core.poStamp="41"/> - <org.eventb.core.poSequent name="registerNewPatient/inv3/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="154"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#EVTALLHYPdentist_treatmentu"/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="appointments⊆dom(patient∪{new_patient ↦ new_patient_password}) × dom(dentist) × dates × ℙ(TREATMENT) × status" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.invariant#_F41cYA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="ABSTRACT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxFmkA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="CONCRETE" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F4678Q36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYT" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.invariant#_F41cYA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poSequent#registerNewPatient\/inv3\/INV|org.eventb.core.poPredicateSet#SEQHYP"/> - <org.eventb.core.poSelHint name="SEQHYV" org.eventb.core.poSelHintFst="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD3"/> - </org.eventb.core.poSequent> - <org.eventb.core.poPredicateSet name="EVTIDENTdentist_treatmentu" org.eventb.core.parentSet="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poStamp="154"> - <org.eventb.core.poIdentifier name="new_patient" org.eventb.core.type="USER"/> - <org.eventb.core.poIdentifier name="registered'" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.poIdentifier name="new_patient_password" org.eventb.core.type="PASSWORD"/> - <org.eventb.core.poIdentifier name="nhs_num'" org.eventb.core.type="ℙ(USER×NHSNUM)"/> - <org.eventb.core.poIdentifier name="patient'" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.poIdentifier name="patient_nhs_num" org.eventb.core.type="NHSNUM"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poPredicateSet name="EVTALLHYPdentist_treatmentu" org.eventb.core.parentSet="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#EVTIDENTdentist_treatmentu" org.eventb.core.poStamp="154"> - <org.eventb.core.poPredicate name="PRD0" org.eventb.core.predicate="new_patient∈USER" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxFmkA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wxKfEA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD1" org.eventb.core.predicate="new_patient_password∈PASSWORD" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxFmkA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wxLtMA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD2" org.eventb.core.predicate="new_patient∉dom(registered)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxFmkA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wxNiYA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD3" org.eventb.core.predicate="card(admin)>0" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxFmkA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wxQlsA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD4" org.eventb.core.predicate="patient_nhs_num∈NHSNUM" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F4678Q36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F48KEA36Ee-bMZTDvaEJhw"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poSequent name="BookAppointment/inv3/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="154"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#EVTALLHYPdentist_treatmentv"/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="appointments∪{pt ↦ chosen_dentist ↦ chosen_date ↦ treatment ↦ booked}⊆dom(patient) × dom(dentist) × dates × ℙ(TREATMENT) × status" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.invariant#_F41cYA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F48xIA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.invariant#_F41cYA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poSequent#BookAppointment\/inv3\/INV|org.eventb.core.poPredicateSet#SEQHYP"/> - <org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD3"/> - </org.eventb.core.poSequent> - <org.eventb.core.poPredicateSet name="EVTIDENTdentist_treatmentv" org.eventb.core.parentSet="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poStamp="154"> - <org.eventb.core.poIdentifier name="pt" org.eventb.core.type="USER"/> - <org.eventb.core.poIdentifier name="appointments'" org.eventb.core.type="ℙ(USER×USER×ℤ×ℙ(TREATMENT)×STATUS)"/> - <org.eventb.core.poIdentifier name="treatment" org.eventb.core.type="ℙ(TREATMENT)"/> - <org.eventb.core.poIdentifier name="chosen_date" org.eventb.core.type="ℤ"/> - <org.eventb.core.poIdentifier name="chosen_dentist" org.eventb.core.type="USER"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poPredicateSet name="EVTALLHYPdentist_treatmentv" org.eventb.core.parentSet="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#EVTIDENTdentist_treatmentv" org.eventb.core.poStamp="154"> - <org.eventb.core.poPredicate name="PRD0" org.eventb.core.predicate="pt∈dom(patient)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F48xIA36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F49_QA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD1" org.eventb.core.predicate="pt∈dom(loggedin)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F48xIA36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F4-mUA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD2" org.eventb.core.predicate="chosen_dentist∈dom(dentist)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F48xIA36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F4-mUQ36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD3" org.eventb.core.predicate="chosen_date∈dates" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F48xIA36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F4_NYA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD4" org.eventb.core.predicate="chosen_date>current_date" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F48xIA36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F4_0cA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD5" org.eventb.core.predicate="treatment∈dentist_treatments[{chosen_dentist}]" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F48xIA36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F4_0cQ36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD6" org.eventb.core.predicate="∀a⦂USER,b⦂USER,c⦂ℤ,d⦂ℙ(TREATMENT),e⦂STATUS·a ↦ b ↦ c ↦ d ↦ e∈appointments⇒a≠pt∧d≠treatment" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F48xIA36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5AbgA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD7" org.eventb.core.predicate="¬(∃b⦂USER,c⦂ℤ,d⦂ℙ(TREATMENT),e⦂STATUS·pt ↦ b ↦ c ↦ d ↦ e∈appointments∧chosen_date − c<14)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F48xIA36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5AbgQ36Ee-bMZTDvaEJhw"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poPredicateSet name="EVTIDENTdentist_treatmentw" org.eventb.core.parentSet="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poStamp="154"> - <org.eventb.core.poIdentifier name="loggedin'" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.poIdentifier name="user" org.eventb.core.type="USER"/> - <org.eventb.core.poIdentifier name="user_password" org.eventb.core.type="PASSWORD"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poPredicateSet name="EVTALLHYPdentist_treatmentw" org.eventb.core.parentSet="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#EVTIDENTdentist_treatmentw" org.eventb.core.poStamp="154"> - <org.eventb.core.poPredicate name="PRD0" org.eventb.core.predicate="user∈dom(registered)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxXTYA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wxeoIA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD1" org.eventb.core.predicate="user_password=registered(user)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxXTYA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wxkHsA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD2" org.eventb.core.predicate="user∉dom(loggedin)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxXTYA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wxl84A35Ee-bMZTDvaEJhw"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poPredicateSet name="EVTIDENTdentist_treatmentx" org.eventb.core.parentSet="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poStamp="154"> - <org.eventb.core.poIdentifier name="loggedin'" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.poIdentifier name="user" org.eventb.core.type="USER"/> - <org.eventb.core.poIdentifier name="password" org.eventb.core.type="PASSWORD"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poPredicateSet name="EVTALLHYPdentist_treatmentx" org.eventb.core.parentSet="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#EVTIDENTdentist_treatmentx" org.eventb.core.poStamp="154"> - <org.eventb.core.poPredicate name="PRD0" org.eventb.core.predicate="user∈dom(loggedin)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxpAMA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wxwU8A35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD1" org.eventb.core.predicate="password=loggedin(user)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxpAMA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wx0mYA35Ee-bMZTDvaEJhw"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poPredicateSet name="EVTIDENTdentist_treatmenty" org.eventb.core.parentSet="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poStamp="154"> - <org.eventb.core.poIdentifier name="root" org.eventb.core.type="USER"/> - <org.eventb.core.poIdentifier name="registered'" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.poIdentifier name="admin'" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.poIdentifier name="root_password" org.eventb.core.type="PASSWORD"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poPredicateSet name="EVTALLHYPdentist_treatmenty" org.eventb.core.parentSet="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#EVTIDENTdentist_treatmenty" org.eventb.core.poStamp="154"> - <org.eventb.core.poPredicate name="PRD0" org.eventb.core.predicate="root∈USER" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wwfwsA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wwo6oA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD1" org.eventb.core.predicate="root_password∈PASSWORD" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wwfwsA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wwslAA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD2" org.eventb.core.predicate="admin=(∅ ⦂ ℙ(USER×PASSWORD))" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wwfwsA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wwuaMA35Ee-bMZTDvaEJhw"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poSequent name="changePatientPassword/inv3/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="154"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#EVTALLHYPdentist_treatmentz"/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="appointments⊆dom(patient{user ↦ new_password}) × dom(dentist) × dates × ℙ(TREATMENT) × status" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.invariant#_F41cYA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="ABSTRACT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wx5e4A35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="CONCRETE" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5C3wQ36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYT" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.invariant#_F41cYA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poSequent#changePatientPassword\/inv3\/INV|org.eventb.core.poPredicateSet#SEQHYP"/> - <org.eventb.core.poSelHint name="SEQHYV" org.eventb.core.poSelHintFst="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD3"/> - </org.eventb.core.poSequent> - <org.eventb.core.poPredicateSet name="EVTIDENTdentist_treatmentz" org.eventb.core.parentSet="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poStamp="154"> - <org.eventb.core.poIdentifier name="loggedin'" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.poIdentifier name="registered'" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.poIdentifier name="user" org.eventb.core.type="USER"/> - <org.eventb.core.poIdentifier name="patient'" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.poIdentifier name="password" org.eventb.core.type="PASSWORD"/> - <org.eventb.core.poIdentifier name="new_password" org.eventb.core.type="PASSWORD"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poPredicateSet name="EVTALLHYPdentist_treatmentz" org.eventb.core.parentSet="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#EVTIDENTdentist_treatmentz" org.eventb.core.poStamp="154"> - <org.eventb.core.poPredicate name="PRD0" org.eventb.core.predicate="user∈dom(patient)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wx5e4A35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wx-XYA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD1" org.eventb.core.predicate="password=loggedin(user)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wx5e4A35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wx_lgA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD2" org.eventb.core.predicate="new_password∈PASSWORD" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wx5e4A35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wyAMkA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD3" org.eventb.core.predicate="user∈dom(loggedin)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wx5e4A35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wyCo0A35Ee-bMZTDvaEJhw"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poSequent name="changeDentistPassword/inv3/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="154"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#EVTALLHYPdentist_treatment{"/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="appointments⊆dom(patient) × dom(dentist{user ↦ new_password}) × dates × ℙ(TREATMENT) × status" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.invariant#_F41cYA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="ABSTRACT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyG6QA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="CONCRETE" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5De0Q36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYT" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.invariant#_F41cYA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poSequent#changeDentistPassword\/inv3\/INV|org.eventb.core.poPredicateSet#SEQHYP"/> - <org.eventb.core.poSelHint name="SEQHYV" org.eventb.core.poSelHintFst="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD3"/> - </org.eventb.core.poSequent> - <org.eventb.core.poSequent name="changeDentistPassword/inv4/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="154"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#EVTALLHYPdentist_treatment{"/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="dentist_treatments⊆dom(dentist{user ↦ new_password}) × ℙ(treatments)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.invariant#_F42DcA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="ABSTRACT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyG6QA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="CONCRETE" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5De0Q36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYT" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.invariant#_F42DcA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poSequent#changeDentistPassword\/inv4\/INV|org.eventb.core.poPredicateSet#SEQHYP"/> - <org.eventb.core.poSelHint name="SEQHYV" org.eventb.core.poSelHintFst="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD4"/> - </org.eventb.core.poSequent> - <org.eventb.core.poPredicateSet name="EVTIDENTdentist_treatment{" org.eventb.core.parentSet="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poStamp="154"> - <org.eventb.core.poIdentifier name="loggedin'" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.poIdentifier name="registered'" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.poIdentifier name="user" org.eventb.core.type="USER"/> - <org.eventb.core.poIdentifier name="password" org.eventb.core.type="PASSWORD"/> - <org.eventb.core.poIdentifier name="dentist'" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.poIdentifier name="new_password" org.eventb.core.type="PASSWORD"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poPredicateSet name="EVTALLHYPdentist_treatment{" org.eventb.core.parentSet="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#EVTIDENTdentist_treatment{" org.eventb.core.poStamp="154"> - <org.eventb.core.poPredicate name="PRD0" org.eventb.core.predicate="user∈dom(dentist)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyG6QA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wyJ9kA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD1" org.eventb.core.predicate="password=loggedin(user)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyG6QA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wyO2EA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD2" org.eventb.core.predicate="new_password∈PASSWORD" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyG6QA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wyQEMA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD3" org.eventb.core.predicate="user∈dom(loggedin)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyG6QA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wyR5YA35Ee-bMZTDvaEJhw"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poPredicateSet name="EVTIDENTdentist_treatment|" org.eventb.core.parentSet="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poStamp="154"> - <org.eventb.core.poIdentifier name="loggedin'" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.poIdentifier name="registered'" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.poIdentifier name="user" org.eventb.core.type="USER"/> - <org.eventb.core.poIdentifier name="admin'" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.poIdentifier name="password" org.eventb.core.type="PASSWORD"/> - <org.eventb.core.poIdentifier name="new_password" org.eventb.core.type="PASSWORD"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poPredicateSet name="EVTALLHYPdentist_treatment|" org.eventb.core.parentSet="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#EVTIDENTdentist_treatment\|" org.eventb.core.poStamp="154"> - <org.eventb.core.poPredicate name="PRD0" org.eventb.core.predicate="user∈dom(admin)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyWK0A35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wyZ1MA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD1" org.eventb.core.predicate="password=loggedin(user)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyWK0A35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wybDUA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD2" org.eventb.core.predicate="new_password∈PASSWORD" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyWK0A35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wyc4gA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD3" org.eventb.core.predicate="user∈dom(loggedin)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyWK0A35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wyetsA35Ee-bMZTDvaEJhw"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poSequent name="AdminRegisterPatientToDentist/inv3/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="154"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#EVTALLHYPdentist_treatment}"/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="appointments⊆dom(patient ∖ ({register_user} ◁ patient)) × dom(dentist∪({register_user} ◁ patient)) × dates × ℙ(TREATMENT) × status" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.invariant#_F41cYA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="ABSTRACT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyjmMA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="CONCRETE" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5FUAQ36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYT" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.invariant#_F41cYA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poSequent#AdminRegisterPatientToDentist\/inv3\/INV|org.eventb.core.poPredicateSet#SEQHYP"/> - <org.eventb.core.poSelHint name="SEQHYV" org.eventb.core.poSelHintFst="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD3"/> - </org.eventb.core.poSequent> - <org.eventb.core.poSequent name="AdminRegisterPatientToDentist/inv4/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="154"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#EVTALLHYPdentist_treatment}"/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="dentist_treatments⊆dom(dentist∪({register_user} ◁ patient)) × ℙ(treatments)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.invariant#_F42DcA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="ABSTRACT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyjmMA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="CONCRETE" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5FUAQ36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYT" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.invariant#_F42DcA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poSequent#AdminRegisterPatientToDentist\/inv4\/INV|org.eventb.core.poPredicateSet#SEQHYP"/> - <org.eventb.core.poSelHint name="SEQHYV" org.eventb.core.poSelHintFst="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD4"/> - </org.eventb.core.poSequent> - <org.eventb.core.poPredicateSet name="EVTIDENTdentist_treatment}" org.eventb.core.parentSet="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poStamp="154"> - <org.eventb.core.poIdentifier name="user" org.eventb.core.type="USER"/> - <org.eventb.core.poIdentifier name="nhs_num'" org.eventb.core.type="ℙ(USER×NHSNUM)"/> - <org.eventb.core.poIdentifier name="patient'" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.poIdentifier name="password" org.eventb.core.type="PASSWORD"/> - <org.eventb.core.poIdentifier name="dentist'" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.poIdentifier name="register_user" org.eventb.core.type="USER"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poPredicateSet name="EVTALLHYPdentist_treatment}" org.eventb.core.parentSet="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#EVTIDENTdentist_treatment}" org.eventb.core.poStamp="154"> - <org.eventb.core.poPredicate name="PRD0" org.eventb.core.predicate="user∈dom(admin)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyjmMA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wyulUA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD1" org.eventb.core.predicate="password=loggedin(user)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyjmMA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wyvzcA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD2" org.eventb.core.predicate="register_user∈dom(patient)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyjmMA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wyxBkA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD3" org.eventb.core.predicate="user∈dom(loggedin)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyjmMA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wyyPsA35Ee-bMZTDvaEJhw"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poSequent name="AdminRegisterPatientToAdministrator/inv3/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="154"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#EVTALLHYPdentist_treatment~"/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="appointments⊆dom(patient ∖ ({register_user} ◁ patient)) × dom(dentist) × dates × ℙ(TREATMENT) × status" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.invariant#_F41cYA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="ABSTRACT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wy16EA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="CONCRETE" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5F7EQ36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYT" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.invariant#_F41cYA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poSequent#AdminRegisterPatientToAdministrator\/inv3\/INV|org.eventb.core.poPredicateSet#SEQHYP"/> - <org.eventb.core.poSelHint name="SEQHYV" org.eventb.core.poSelHintFst="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD3"/> - </org.eventb.core.poSequent> - <org.eventb.core.poPredicateSet name="EVTIDENTdentist_treatment~" org.eventb.core.parentSet="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poStamp="154"> - <org.eventb.core.poIdentifier name="user" org.eventb.core.type="USER"/> - <org.eventb.core.poIdentifier name="admin'" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.poIdentifier name="nhs_num'" org.eventb.core.type="ℙ(USER×NHSNUM)"/> - <org.eventb.core.poIdentifier name="patient'" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.poIdentifier name="password" org.eventb.core.type="PASSWORD"/> - <org.eventb.core.poIdentifier name="register_user" org.eventb.core.type="USER"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poPredicateSet name="EVTALLHYPdentist_treatment~" org.eventb.core.parentSet="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#EVTIDENTdentist_treatment~" org.eventb.core.poStamp="154"> - <org.eventb.core.poPredicate name="PRD0" org.eventb.core.predicate="user∈dom(admin)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wy16EA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wy5kcA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD1" org.eventb.core.predicate="password=loggedin(user)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wy16EA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wy6LgA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD2" org.eventb.core.predicate="register_user∈dom(patient)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wy16EA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wy7ZoA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD3" org.eventb.core.predicate="user∈dom(loggedin)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wy16EA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wy8nwA35Ee-bMZTDvaEJhw"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poSequent name="AdminRegisterDentistToAdministrator/inv3/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="154"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#EVTALLHYPdentist_treatmenu'"/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="appointments⊆dom(patient) × dom(dentist ∖ ({register_user} ◁ dentist)) × dates × ℙ(TREATMENT) × status" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.invariant#_F41cYA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="ABSTRACT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wzMfYA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="CONCRETE" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5GiIg36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYT" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.invariant#_F41cYA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poSequent#AdminRegisterDentistToAdministrator\/inv3\/INV|org.eventb.core.poPredicateSet#SEQHYP"/> - <org.eventb.core.poSelHint name="SEQHYV" org.eventb.core.poSelHintFst="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD3"/> - </org.eventb.core.poSequent> - <org.eventb.core.poSequent name="AdminRegisterDentistToAdministrator/inv4/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="154"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#EVTALLHYPdentist_treatmenu'"/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="dentist_treatments⊆dom(dentist ∖ ({register_user} ◁ dentist)) × ℙ(treatments)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.invariant#_F42DcA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="ABSTRACT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wzMfYA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="CONCRETE" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5GiIg36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYT" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.invariant#_F42DcA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poSequent#AdminRegisterDentistToAdministrator\/inv4\/INV|org.eventb.core.poPredicateSet#SEQHYP"/> - <org.eventb.core.poSelHint name="SEQHYV" org.eventb.core.poSelHintFst="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD4"/> - </org.eventb.core.poSequent> - <org.eventb.core.poPredicateSet name="EVTIDENTdentist_treatmenu'" org.eventb.core.parentSet="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poStamp="154"> - <org.eventb.core.poIdentifier name="user" org.eventb.core.type="USER"/> - <org.eventb.core.poIdentifier name="admin'" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.poIdentifier name="password" org.eventb.core.type="PASSWORD"/> - <org.eventb.core.poIdentifier name="dentist'" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.poIdentifier name="register_user" org.eventb.core.type="USER"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poPredicateSet name="EVTALLHYPdentist_treatmenu'" org.eventb.core.parentSet="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#EVTIDENTdentist_treatmenu'" org.eventb.core.poStamp="154"> - <org.eventb.core.poPredicate name="PRD0" org.eventb.core.predicate="user∈dom(admin)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wzMfYA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wzQJwA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD1" org.eventb.core.predicate="password=loggedin(user)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wzMfYA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wzQw0A35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD2" org.eventb.core.predicate="register_user∈dom(dentist)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wzMfYA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wzT0IA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD3" org.eventb.core.predicate="user∈dom(loggedin)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wzMfYA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wzVCQA35Ee-bMZTDvaEJhw"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poSequent name="CancelAppointment/inv3/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="154"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#EVTALLHYPdentist_treatmenu("/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="appointments{pt ↦ dent ↦ dat ↦ treat ↦ cancelled}⊆dom(patient) × dom(dentist) × dates × ℙ(TREATMENT) × status" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.invariant#_F41cYA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5HJMQ36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.invariant#_F41cYA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poSequent#CancelAppointment\/inv3\/INV|org.eventb.core.poPredicateSet#SEQHYP"/> - <org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD3"/> - </org.eventb.core.poSequent> - <org.eventb.core.poPredicateSet name="EVTIDENTdentist_treatmenu(" org.eventb.core.parentSet="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poStamp="154"> - <org.eventb.core.poIdentifier name="stat" org.eventb.core.type="STATUS"/> - <org.eventb.core.poIdentifier name="pt" org.eventb.core.type="USER"/> - <org.eventb.core.poIdentifier name="dat" org.eventb.core.type="ℤ"/> - <org.eventb.core.poIdentifier name="appointments'" org.eventb.core.type="ℙ(USER×USER×ℤ×ℙ(TREATMENT)×STATUS)"/> - <org.eventb.core.poIdentifier name="treat" org.eventb.core.type="ℙ(TREATMENT)"/> - <org.eventb.core.poIdentifier name="dent" org.eventb.core.type="USER"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poPredicateSet name="EVTALLHYPdentist_treatmenu(" org.eventb.core.parentSet="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#EVTIDENTdentist_treatmenu(" org.eventb.core.poStamp="154"> - <org.eventb.core.poPredicate name="PRD0" org.eventb.core.predicate="pt∈dom(patient)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5HJMQ36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5I-YA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD1" org.eventb.core.predicate="dent∈dom(dentist)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5HJMQ36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5I-YQ36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD2" org.eventb.core.predicate="dat∈dates" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5HJMQ36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5JlcA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD3" org.eventb.core.predicate="treat∈ℙ(TREATMENT)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5HJMQ36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5JlcQ36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD4" org.eventb.core.predicate="stat∈status" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5HJMQ36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5KMgA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD5" org.eventb.core.predicate="pt∈dom(loggedin)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5HJMQ36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5KMgQ36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD6" org.eventb.core.predicate="pt ↦ dent ↦ dat ↦ treat ↦ stat∈appointments⇒stat=booked" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5HJMQ36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5KzkA36Ee-bMZTDvaEJhw"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poSequent name="RebookAppointment/inv3/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="154"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#EVTALLHYPdentist_treatmenu)"/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="appointments{pt ↦ dent ↦ newDat ↦ treatment ↦ booked}⊆dom(patient) × dom(dentist) × dates × ℙ(TREATMENT) × status" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.invariant#_F41cYA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5LaoA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.invariant#_F41cYA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poSequent#RebookAppointment\/inv3\/INV|org.eventb.core.poPredicateSet#SEQHYP"/> - <org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD3"/> - </org.eventb.core.poSequent> - <org.eventb.core.poPredicateSet name="EVTIDENTdentist_treatmenu)" org.eventb.core.parentSet="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poStamp="154"> - <org.eventb.core.poIdentifier name="stat" org.eventb.core.type="STATUS"/> - <org.eventb.core.poIdentifier name="pt" org.eventb.core.type="USER"/> - <org.eventb.core.poIdentifier name="dat" org.eventb.core.type="ℤ"/> - <org.eventb.core.poIdentifier name="appointments'" org.eventb.core.type="ℙ(USER×USER×ℤ×ℙ(TREATMENT)×STATUS)"/> - <org.eventb.core.poIdentifier name="dent" org.eventb.core.type="USER"/> - <org.eventb.core.poIdentifier name="treatment" org.eventb.core.type="ℙ(TREATMENT)"/> - <org.eventb.core.poIdentifier name="newDat" org.eventb.core.type="ℤ"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poPredicateSet name="EVTALLHYPdentist_treatmenu)" org.eventb.core.parentSet="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#EVTIDENTdentist_treatmenu)" org.eventb.core.poStamp="154"> - <org.eventb.core.poPredicate name="PRD0" org.eventb.core.predicate="pt∈dom(patient)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5LaoA36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5NP0A36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD1" org.eventb.core.predicate="dent∈dom(dentist)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5LaoA36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5NP0Q36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD2" org.eventb.core.predicate="dat∈dates" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5LaoA36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5N24A36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD3" org.eventb.core.predicate="stat∈status" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5LaoA36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5N24Q36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD4" org.eventb.core.predicate="newDat∈dates" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5LaoA36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5Od8A36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD5" org.eventb.core.predicate="newDat>current_date" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5LaoA36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5Od8Q36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD6" org.eventb.core.predicate="treatment∈dentist_treatments[{dent}]" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5LaoA36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5PFAA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD7" org.eventb.core.predicate="pt∈dom(loggedin)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5LaoA36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5PFAQ36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD8" org.eventb.core.predicate="pt ↦ dent ↦ dat ↦ treatment ↦ stat∈appointments⇒current_date − dat>2∧stat=booked" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5LaoA36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5PsEA36Ee-bMZTDvaEJhw"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poSequent name="CheckInAppointment/inv3/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="154"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#EVTALLHYPdentist_treatmenu*"/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="appointments{pt ↦ dent ↦ dat ↦ treat ↦ checked_in}⊆dom(patient) × dom(dentist) × dates × ℙ(TREATMENT) × status" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.invariant#_F41cYA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5QTIQ36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.invariant#_F41cYA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poSequent#CheckInAppointment\/inv3\/INV|org.eventb.core.poPredicateSet#SEQHYP"/> - <org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD3"/> - </org.eventb.core.poSequent> - <org.eventb.core.poPredicateSet name="EVTIDENTdentist_treatmenu*" org.eventb.core.parentSet="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poStamp="154"> - <org.eventb.core.poIdentifier name="stat" org.eventb.core.type="STATUS"/> - <org.eventb.core.poIdentifier name="pt" org.eventb.core.type="USER"/> - <org.eventb.core.poIdentifier name="dat" org.eventb.core.type="ℤ"/> - <org.eventb.core.poIdentifier name="appointments'" org.eventb.core.type="ℙ(USER×USER×ℤ×ℙ(TREATMENT)×STATUS)"/> - <org.eventb.core.poIdentifier name="treat" org.eventb.core.type="ℙ(TREATMENT)"/> - <org.eventb.core.poIdentifier name="dent" org.eventb.core.type="USER"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poPredicateSet name="EVTALLHYPdentist_treatmenu*" org.eventb.core.parentSet="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#EVTIDENTdentist_treatmenu*" org.eventb.core.poStamp="154"> - <org.eventb.core.poPredicate name="PRD0" org.eventb.core.predicate="pt∈dom(patient)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5QTIQ36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5RhQg36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD1" org.eventb.core.predicate="dent∈dom(dentist)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5QTIQ36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5SIUA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD2" org.eventb.core.predicate="dat∈dates" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5QTIQ36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5SIUQ36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD3" org.eventb.core.predicate="treat∈ℙ(TREATMENT)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5QTIQ36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5SIUg36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD4" org.eventb.core.predicate="stat∈status" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5QTIQ36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5SvYA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD5" org.eventb.core.predicate="pt∈dom(loggedin)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5QTIQ36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5SvYQ36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD6" org.eventb.core.predicate="pt ↦ dent ↦ dat ↦ treat ↦ stat∈appointments⇒current_date=dat" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5QTIQ36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5SvYg36Ee-bMZTDvaEJhw"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poSequent name="CompletedAppointment/inv3/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="154"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#EVTALLHYPdentist_treatmenu+"/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="appointments{pt ↦ dent ↦ dat ↦ treat ↦ completed}⊆dom(patient) × dom(dentist) × dates × ℙ(TREATMENT) × status" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.invariant#_F41cYA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5TWcQ36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.invariant#_F41cYA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poSequent#CompletedAppointment\/inv3\/INV|org.eventb.core.poPredicateSet#SEQHYP"/> - <org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD3"/> - </org.eventb.core.poSequent> - <org.eventb.core.poPredicateSet name="EVTIDENTdentist_treatmenu+" org.eventb.core.parentSet="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poStamp="154"> - <org.eventb.core.poIdentifier name="stat" org.eventb.core.type="STATUS"/> - <org.eventb.core.poIdentifier name="pt" org.eventb.core.type="USER"/> - <org.eventb.core.poIdentifier name="dat" org.eventb.core.type="ℤ"/> - <org.eventb.core.poIdentifier name="appointments'" org.eventb.core.type="ℙ(USER×USER×ℤ×ℙ(TREATMENT)×STATUS)"/> - <org.eventb.core.poIdentifier name="treat" org.eventb.core.type="ℙ(TREATMENT)"/> - <org.eventb.core.poIdentifier name="dent" org.eventb.core.type="USER"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poPredicateSet name="EVTALLHYPdentist_treatmenu+" org.eventb.core.parentSet="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#EVTIDENTdentist_treatmenu+" org.eventb.core.poStamp="154"> - <org.eventb.core.poPredicate name="PRD0" org.eventb.core.predicate="dent∈dom(dentist)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5TWcQ36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5VLoA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD1" org.eventb.core.predicate="pt∈dom(patient)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5TWcQ36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5VLoQ36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD2" org.eventb.core.predicate="dat∈dates" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5TWcQ36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5VysA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD3" org.eventb.core.predicate="treat∈ℙ(TREATMENT)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5TWcQ36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5VysQ36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD4" org.eventb.core.predicate="stat∈status" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5TWcQ36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5WZwA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD5" org.eventb.core.predicate="dent∈dom(loggedin)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5TWcQ36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5WZwQ36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD6" org.eventb.core.predicate="pt ↦ dent ↦ dat ↦ treat ↦ stat∈appointments⇒current_date=dat∧stat=checked_in" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5TWcQ36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5XA0A36Ee-bMZTDvaEJhw"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poSequent name="MissedAppointment/inv3/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="154"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#EVTALLHYPdentist_treatmenu,"/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="appointments{pt ↦ dent ↦ dat ↦ treat ↦ missed}⊆dom(patient) × dom(dentist) × dates × ℙ(TREATMENT) × status" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.invariant#_F41cYA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5Xn4A36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.invariant#_F41cYA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poSequent#MissedAppointment\/inv3\/INV|org.eventb.core.poPredicateSet#SEQHYP"/> - <org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD3"/> - </org.eventb.core.poSequent> - <org.eventb.core.poPredicateSet name="EVTIDENTdentist_treatmenu," org.eventb.core.parentSet="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poStamp="154"> - <org.eventb.core.poIdentifier name="stat" org.eventb.core.type="STATUS"/> - <org.eventb.core.poIdentifier name="pt" org.eventb.core.type="USER"/> - <org.eventb.core.poIdentifier name="dat" org.eventb.core.type="ℤ"/> - <org.eventb.core.poIdentifier name="ad" org.eventb.core.type="USER"/> - <org.eventb.core.poIdentifier name="appointments'" org.eventb.core.type="ℙ(USER×USER×ℤ×ℙ(TREATMENT)×STATUS)"/> - <org.eventb.core.poIdentifier name="treat" org.eventb.core.type="ℙ(TREATMENT)"/> - <org.eventb.core.poIdentifier name="dent" org.eventb.core.type="USER"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poPredicateSet name="EVTALLHYPdentist_treatmenu," org.eventb.core.parentSet="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#EVTIDENTdentist_treatmenu," org.eventb.core.poStamp="154"> - <org.eventb.core.poPredicate name="PRD0" org.eventb.core.predicate="ad∈dom(admin)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5Xn4A36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5ZdEA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD1" org.eventb.core.predicate="pt∈dom(patient)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5Xn4A36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5ZdEQ36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD2" org.eventb.core.predicate="dent∈dom(dentist)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5Xn4A36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5aEIA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD3" org.eventb.core.predicate="dat∈dates" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5Xn4A36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5arMA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD4" org.eventb.core.predicate="stat∈status" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5Xn4A36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5arMQ36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD5" org.eventb.core.predicate="treat∈ℙ(TREATMENT)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5Xn4A36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5arMg36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD6" org.eventb.core.predicate="ad∈dom(loggedin)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5Xn4A36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5bSQA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD7" org.eventb.core.predicate="pt ↦ dent ↦ dat ↦ treat ↦ stat∈appointments⇒current_date>dat∧stat=booked" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5Xn4A36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5bSQQ36Ee-bMZTDvaEJhw"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poSequent name="CheckOverdueAppointments/inv3/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="154"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#EVTALLHYPdentist_treatmenu-"/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="appointments{pt ↦ dent ↦ dat ↦ treat ↦ missed}⊆dom(patient) × dom(dentist) × dates × ℙ(TREATMENT) × status" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.invariant#_F41cYA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5cgYA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.invariant#_F41cYA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poSequent#CheckOverdueAppointments\/inv3\/INV|org.eventb.core.poPredicateSet#SEQHYP"/> - <org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD3"/> - </org.eventb.core.poSequent> - <org.eventb.core.poPredicateSet name="EVTIDENTdentist_treatmenu-" org.eventb.core.parentSet="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poStamp="154"> - <org.eventb.core.poIdentifier name="stat" org.eventb.core.type="STATUS"/> - <org.eventb.core.poIdentifier name="pt" org.eventb.core.type="USER"/> - <org.eventb.core.poIdentifier name="dat" org.eventb.core.type="ℤ"/> - <org.eventb.core.poIdentifier name="appointments'" org.eventb.core.type="ℙ(USER×USER×ℤ×ℙ(TREATMENT)×STATUS)"/> - <org.eventb.core.poIdentifier name="treat" org.eventb.core.type="ℙ(TREATMENT)"/> - <org.eventb.core.poIdentifier name="dent" org.eventb.core.type="USER"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poPredicateSet name="EVTALLHYPdentist_treatmenu-" org.eventb.core.parentSet="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#EVTIDENTdentist_treatmenu-" org.eventb.core.poStamp="154"> - <org.eventb.core.poPredicate name="PRD0" org.eventb.core.predicate="pt∈dom(patient)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5cgYA36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5dugQ36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD1" org.eventb.core.predicate="dent∈dom(dentist)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5cgYA36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5eVkA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD2" org.eventb.core.predicate="dat∈dates" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5cgYA36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5eVkQ36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD3" org.eventb.core.predicate="treat∈ℙ(TREATMENT)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5cgYA36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5eVkg36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD4" org.eventb.core.predicate="stat∈status" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5cgYA36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5e8oA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD5" org.eventb.core.predicate="pt ↦ dent ↦ dat ↦ treat ↦ stat∈appointments⇒current_date>dat∧stat=booked" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5cgYA36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5e8oQ36Ee-bMZTDvaEJhw"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poPredicateSet name="EVTIDENTdentist_treatmenu." org.eventb.core.parentSet="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poStamp="154"> - <org.eventb.core.poIdentifier name="pt" org.eventb.core.type="USER×PASSWORD"/> - <org.eventb.core.poIdentifier name="patient_nhs_number" org.eventb.core.type="USER×NHSNUM"/> - <org.eventb.core.poIdentifier name="user" org.eventb.core.type="USER"/> - <org.eventb.core.poIdentifier name="appointment_records_result" org.eventb.core.type="ℙ(USER×USER×ℤ×ℙ(TREATMENT)×STATUS)"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poPredicateSet name="EVTALLHYPdentist_treatmenu." org.eventb.core.parentSet="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#EVTIDENTdentist_treatmenu." org.eventb.core.poStamp="154"> - <org.eventb.core.poPredicate name="PRD0" org.eventb.core.predicate="patient_nhs_number∈nhs_num" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5fjsA36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5gKwQ36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD1" org.eventb.core.predicate="appointment_records_result⊆appointments" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5fjsA36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5gKwg36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD2" org.eventb.core.predicate="pt∈patient" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5fjsA36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5gKww36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD3" org.eventb.core.predicate="user∈dom(admin)∪dom(dentist)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5fjsA36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5gx0A36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD4" org.eventb.core.predicate="user∈dom(loggedin)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5fjsA36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5gx0Q36Ee-bMZTDvaEJhw"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poPredicateSet name="EVTIDENTdentist_treatmenu/" org.eventb.core.parentSet="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poStamp="154"> - <org.eventb.core.poIdentifier name="pt" org.eventb.core.type="USER×PASSWORD"/> - <org.eventb.core.poIdentifier name="patient_nhs_number" org.eventb.core.type="USER×NHSNUM"/> - <org.eventb.core.poIdentifier name="user" org.eventb.core.type="USER"/> - <org.eventb.core.poIdentifier name="appointment_records_result" org.eventb.core.type="ℙ(USER×USER×ℤ×ℙ(TREATMENT)×STATUS)"/> - <org.eventb.core.poIdentifier name="date_specified" org.eventb.core.type="ℤ"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poPredicateSet name="EVTALLHYPdentist_treatmenu/" org.eventb.core.parentSet="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#EVTIDENTdentist_treatmenu\/" org.eventb.core.poStamp="154"> - <org.eventb.core.poPredicate name="PRD0" org.eventb.core.predicate="patient_nhs_number∈nhs_num" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5gx0g36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5h_8g36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD1" org.eventb.core.predicate="appointment_records_result⊆appointments" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5gx0g36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5inAA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD2" org.eventb.core.predicate="pt∈patient" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5gx0g36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5inAQ36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD3" org.eventb.core.predicate="date_specified∈dates" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5gx0g36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5inAg36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD4" org.eventb.core.predicate="user∈dom(patient)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5gx0g36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5jOEA36Ee-bMZTDvaEJhw"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poSequent name="GetsPatientsTreatmentRecord/grd0/WD" org.eventb.core.accurate="true" org.eventb.core.poDesc="Well-definedness of Guard" org.eventb.core.poStamp="154"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#EVTIDENTdentist_treatmenu0"/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="pt∈dom(loggedin)∧loggedin∈USER ⇸ PASSWORD" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5jOEQ36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5j1Iw36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5jOEQ36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5j1Iw36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYS" org.eventb.core.poSelHintFst="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#EVTIDENTdentist_treatmenu0"/> - </org.eventb.core.poSequent> - <org.eventb.core.poPredicateSet name="EVTIDENTdentist_treatmenu0" org.eventb.core.parentSet="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poStamp="154"> - <org.eventb.core.poIdentifier name="pt" org.eventb.core.type="USER"/> - <org.eventb.core.poIdentifier name="user" org.eventb.core.type="USER"/> - <org.eventb.core.poIdentifier name="treatment_record" org.eventb.core.type="TREATMENT"/> - <org.eventb.core.poIdentifier name="password" org.eventb.core.type="PASSWORD"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poPredicateSet name="EVTALLHYPdentist_treatmenu0" org.eventb.core.parentSet="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#EVTIDENTdentist_treatmenu0" org.eventb.core.poStamp="154"> - <org.eventb.core.poPredicate name="PRD0" org.eventb.core.predicate="password=loggedin(pt)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5jOEQ36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5j1Iw36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD1" org.eventb.core.predicate="user∈dom(loggedin)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5jOEQ36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5j1JA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD2" org.eventb.core.predicate="treatment_record∈treatments" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5jOEQ36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5kcMA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD3" org.eventb.core.predicate="user∈dom(patient)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.event#_F5jOEQ36Ee-bMZTDvaEJhw|org.eventb.core.guard#_F5kcMQ36Ee-bMZTDvaEJhw"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poPredicateSet name="ALLHYP" org.eventb.core.parentSet="/UserManagement/AppointmentMachine.bpo|org.eventb.core.poFile#AppointmentMachine|org.eventb.core.poPredicateSet#ABSHYP" org.eventb.core.poStamp="154"> - <org.eventb.core.poPredicate name="PRD0" org.eventb.core.predicate="treatments⊆TREATMENT" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.invariant#_F40OQQ36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD1" org.eventb.core.predicate="dates⊆ℕ" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.invariant#_F401UA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD2" org.eventb.core.predicate="status⊆STATUS" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.invariant#_F401UQ36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD3" org.eventb.core.predicate="appointments⊆dom(patient) × dom(dentist) × dates × ℙ(TREATMENT) × status" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.invariant#_F41cYA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD4" org.eventb.core.predicate="dentist_treatments⊆dom(dentist) × ℙ(treatments)" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.invariant#_F42DcA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD5" org.eventb.core.predicate="current_date∈ℕ" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.invariant#_F42DcQ36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD6" org.eventb.core.predicate="nhs_num⊆USER × NHSNUM" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.invariant#_F42qgA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD7" org.eventb.core.predicate="{booked,checked_in,cancelled,missed,completed}⊆STATUS" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.invariant#_F43RkA36Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD8" org.eventb.core.predicate="partition(status,{booked},{checked_in},{cancelled},{missed},{completed})" org.eventb.core.source="/UserManagement/AppointmentMachine.bum|org.eventb.core.machineFile#AppointmentMachine|org.eventb.core.invariant#_F43RkQ36Ee-bMZTDvaEJhw"/> - </org.eventb.core.poPredicateSet> -</org.eventb.core.poFile> diff --git a/UserManagement/AppointmentMachine.bps b/UserManagement/AppointmentMachine.bps deleted file mode 100644 index c96fe543d1923a03e28d8846e6b2235df62cdcc3..0000000000000000000000000000000000000000 --- a/UserManagement/AppointmentMachine.bps +++ /dev/null @@ -1,25 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<org.eventb.core.psFile> - <org.eventb.core.psStatus name="INITIALISATION/inv1/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="154" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="INITIALISATION/inv3/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="154" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="INITIALISATION/inv4/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="154" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="INITIALISATION/inv5/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="154" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="INITIALISATION/inv8/INV" org.eventb.core.confidence="0" org.eventb.core.poStamp="154" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="registerNewPatient/inv3/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="154" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="BookAppointment/inv3/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="154" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="changePatientPassword/inv3/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="154" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="changeDentistPassword/inv3/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="154" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="changeDentistPassword/inv4/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="154" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="AdminRegisterPatientToDentist/inv3/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="154" org.eventb.core.psBroken="true" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="AdminRegisterPatientToDentist/inv4/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="154" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="AdminRegisterPatientToAdministrator/inv3/INV" org.eventb.core.confidence="0" org.eventb.core.poStamp="154" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="AdminRegisterDentistToAdministrator/inv3/INV" org.eventb.core.confidence="0" org.eventb.core.poStamp="154" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="AdminRegisterDentistToAdministrator/inv4/INV" org.eventb.core.confidence="0" org.eventb.core.poStamp="154" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="CancelAppointment/inv3/INV" org.eventb.core.confidence="0" org.eventb.core.poStamp="154" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="RebookAppointment/inv3/INV" org.eventb.core.confidence="0" org.eventb.core.poStamp="154" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="CheckInAppointment/inv3/INV" org.eventb.core.confidence="0" org.eventb.core.poStamp="154" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="CompletedAppointment/inv3/INV" org.eventb.core.confidence="0" org.eventb.core.poStamp="154" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="MissedAppointment/inv3/INV" org.eventb.core.confidence="0" org.eventb.core.poStamp="154" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="CheckOverdueAppointments/inv3/INV" org.eventb.core.confidence="0" org.eventb.core.poStamp="154" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="GetsPatientsTreatmentRecord/grd0/WD" org.eventb.core.confidence="0" org.eventb.core.poStamp="154" org.eventb.core.psManual="false"/> -</org.eventb.core.psFile> diff --git a/UserManagement/AppointmentMachine.bum b/UserManagement/AppointmentMachine.bum index 932ce4fb37fac9b886cf7ddf6a682f87682fee50..7978a7f3b23b13829633819000d18136b0829309 100644 --- a/UserManagement/AppointmentMachine.bum +++ b/UserManagement/AppointmentMachine.bum @@ -1,218 +1,218 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> <org.eventb.core.machineFile org.eventb.core.configuration="org.eventb.core.fwd;ac.soton.xeventb.xmachine.base" org.eventb.core.generated="false" version="5"> - <org.eventb.core.refinesMachine name="_F4vVwA36Ee-bMZTDvaEJhw" org.eventb.core.target="UserMachine"/> - <org.eventb.core.seesContext name="_F4v80A36Ee-bMZTDvaEJhw" org.eventb.core.target="AppointmentContext"/> - <org.eventb.core.seesContext name="_F4v80Q36Ee-bMZTDvaEJhw" org.eventb.core.target="UserContext"/> - <org.eventb.core.variable name="_F4v80g36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="patient"/> - <org.eventb.core.variable name="_F4wj4A36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="registered"/> - <org.eventb.core.variable name="_F4wj4Q36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="loggedin"/> - <org.eventb.core.variable name="_F4xK8A36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="dentist"/> - <org.eventb.core.variable name="_F4xK8Q36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="admin"/> - <org.eventb.core.variable name="_F4xK8g36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="dentist_treatments"/> - <org.eventb.core.variable name="_F4xyAA36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="treatments"/> - <org.eventb.core.variable name="_F4xyAQ36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="nhs_num"/> - <org.eventb.core.variable name="_F4yZEA36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="dates"/> - <org.eventb.core.variable name="_F4yZEQ36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="appointments"/> - <org.eventb.core.variable name="_F4yZEg36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="current_date"/> - <org.eventb.core.variable name="_F4zAIA36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="status"/> - <org.eventb.core.variable name="_F4zAIQ36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="booked"/> - <org.eventb.core.variable name="_F4znMA36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="checked_in"/> - <org.eventb.core.variable name="_F4znMQ36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="cancelled"/> - <org.eventb.core.variable name="_F4znMg36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="missed"/> - <org.eventb.core.variable name="_F40OQA36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="completed"/> - <org.eventb.core.invariant name="_F40OQQ36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="inv0" org.eventb.core.predicate="treatments ⊆ TREATMENT"/> - <org.eventb.core.invariant name="_F401UA36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="inv1" org.eventb.core.predicate="dates ⊆ ℕ"/> - <org.eventb.core.invariant name="_F401UQ36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="inv2" org.eventb.core.predicate="status ⊆ STATUS"/> - <org.eventb.core.invariant name="_F41cYA36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="inv3" org.eventb.core.predicate="appointments ⊆ dom(patient) × dom(dentist) × dates × ℙ(TREATMENT) × status"/> - <org.eventb.core.invariant name="_F42DcA36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="inv4" org.eventb.core.predicate="dentist_treatments ⊆ dom(dentist) × ℙ(treatments)"/> - <org.eventb.core.invariant name="_F42DcQ36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="inv5" org.eventb.core.predicate="current_date ∈ ℕ"/> - <org.eventb.core.invariant name="_F42qgA36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="inv6" org.eventb.core.predicate="nhs_num ⊆ USER × NHSNUM"/> - <org.eventb.core.invariant name="_F43RkA36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="inv7" org.eventb.core.predicate="{booked, checked_in, cancelled, missed, completed} ⊆ STATUS"/> - <org.eventb.core.invariant name="_F43RkQ36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="inv8" org.eventb.core.predicate="partition(status, {booked}, {checked_in}, {cancelled}, {missed}, {completed})"/> - <org.eventb.core.event name="_F434oA36Ee-bMZTDvaEJhw" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.generated="false" org.eventb.core.label="INITIALISATION"> - <org.eventb.core.action name="_F44fsA36Ee-bMZTDvaEJhw" org.eventb.core.assignment="treatments ≔ ∅" org.eventb.core.generated="false" org.eventb.core.label="act5"/> - <org.eventb.core.action name="_F45GwA36Ee-bMZTDvaEJhw" org.eventb.core.assignment="dentist_treatments ≔ ∅" org.eventb.core.generated="false" org.eventb.core.label="act6"/> - <org.eventb.core.action name="_F45GwQ36Ee-bMZTDvaEJhw" org.eventb.core.assignment="nhs_num ≔ ∅" org.eventb.core.generated="false" org.eventb.core.label="act7"/> - <org.eventb.core.action name="_F45t0A36Ee-bMZTDvaEJhw" org.eventb.core.assignment="dates ≔ ∅" org.eventb.core.generated="false" org.eventb.core.label="act8"/> - <org.eventb.core.action name="_F45t0Q36Ee-bMZTDvaEJhw" org.eventb.core.assignment="appointments ≔ ∅" org.eventb.core.generated="false" org.eventb.core.label="act9"/> - <org.eventb.core.action name="_F45t0g36Ee-bMZTDvaEJhw" org.eventb.core.assignment="current_date ≔ 010124" org.eventb.core.generated="false" org.eventb.core.label="act10"/> - <org.eventb.core.action name="_F4678A36Ee-bMZTDvaEJhw" org.eventb.core.assignment="status ≔ ∅" org.eventb.core.generated="false" org.eventb.core.label="act11"/> - </org.eventb.core.event> - <org.eventb.core.event name="_F4678Q36Ee-bMZTDvaEJhw" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.generated="false" org.eventb.core.label="registerNewPatient"> - <org.eventb.core.refinesEvent name="_F47jAA36Ee-bMZTDvaEJhw" org.eventb.core.target="registerNewPatient"/> - <org.eventb.core.parameter name="_F47jAQ36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="patient_nhs_num"/> - <org.eventb.core.guard name="_F48KEA36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd4" org.eventb.core.predicate="patient_nhs_num ∈ NHSNUM"/> - <org.eventb.core.action name="_F48KEQ36Ee-bMZTDvaEJhw" org.eventb.core.assignment="nhs_num ≔ nhs_num ∪ {new_patient ↦ patient_nhs_num}" org.eventb.core.generated="false" org.eventb.core.label="act3"/> - </org.eventb.core.event> - <org.eventb.core.event name="_F48xIA36Ee-bMZTDvaEJhw" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.generated="false" org.eventb.core.label="BookAppointment"> - <org.eventb.core.parameter name="_F48xIQ36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="pt"/> - <org.eventb.core.parameter name="_F49YMA36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="chosen_dentist"/> - <org.eventb.core.parameter name="_F49YMQ36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="chosen_date"/> - <org.eventb.core.parameter name="_F49YMg36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="treatment"/> - <org.eventb.core.guard name="_F49_QA36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd0" org.eventb.core.predicate="pt ∈ dom(patient)"/> - <org.eventb.core.guard name="_F4-mUA36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd1" org.eventb.core.predicate="pt ∈ dom(loggedin)"/> - <org.eventb.core.guard name="_F4-mUQ36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd2" org.eventb.core.predicate="chosen_dentist ∈ dom(dentist)"/> - <org.eventb.core.guard name="_F4_NYA36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd3" org.eventb.core.predicate="chosen_date ∈ dates"/> - <org.eventb.core.guard name="_F4_0cA36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd4" org.eventb.core.predicate="chosen_date > current_date"/> - <org.eventb.core.guard name="_F4_0cQ36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd5" org.eventb.core.predicate="treatment ∈ dentist_treatments[{chosen_dentist}]"/> - <org.eventb.core.guard name="_F5AbgA36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd6" org.eventb.core.predicate="∀a,b,c,d,e· (a ↦ b ↦ c ↦ d ↦ e) ∈ appointments ⇒ a ≠ pt ∧ d ≠ treatment"/> - <org.eventb.core.guard name="_F5AbgQ36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd7" org.eventb.core.predicate="¬(∃b,c,d,e · (pt ↦ b ↦ c ↦ d ↦ e) ∈ appointments ∧ (chosen_date − c) < 14)"/> - <org.eventb.core.action name="_F5BCkA36Ee-bMZTDvaEJhw" org.eventb.core.assignment="appointments ≔ appointments ∪ {pt ↦ chosen_dentist ↦ chosen_date ↦ treatment ↦ booked}" org.eventb.core.generated="false" org.eventb.core.label="act1"/> - </org.eventb.core.event> - <org.eventb.core.event name="_F5BCkQ36Ee-bMZTDvaEJhw" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.generated="false" org.eventb.core.label="loginUser"> - <org.eventb.core.refinesEvent name="_F5BpoA36Ee-bMZTDvaEJhw" org.eventb.core.target="loginUser"/> - </org.eventb.core.event> - <org.eventb.core.event name="_F5BpoQ36Ee-bMZTDvaEJhw" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.generated="false" org.eventb.core.label="logoutUser"> - <org.eventb.core.refinesEvent name="_F5CQsA36Ee-bMZTDvaEJhw" org.eventb.core.target="logoutUser"/> - </org.eventb.core.event> - <org.eventb.core.event name="_F5CQsQ36Ee-bMZTDvaEJhw" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.generated="false" org.eventb.core.label="setRootAdmins"> - <org.eventb.core.refinesEvent name="_F5C3wA36Ee-bMZTDvaEJhw" org.eventb.core.target="setRootAdmins"/> - </org.eventb.core.event> - <org.eventb.core.event name="_F5C3wQ36Ee-bMZTDvaEJhw" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.generated="false" org.eventb.core.label="changePatientPassword"> - <org.eventb.core.refinesEvent name="_F5De0A36Ee-bMZTDvaEJhw" org.eventb.core.target="changePatientPassword"/> - </org.eventb.core.event> - <org.eventb.core.event name="_F5De0Q36Ee-bMZTDvaEJhw" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.generated="false" org.eventb.core.label="changeDentistPassword"> - <org.eventb.core.refinesEvent name="_F5De0g36Ee-bMZTDvaEJhw" org.eventb.core.target="changeDentistPassword"/> - </org.eventb.core.event> - <org.eventb.core.event name="_F5EF4A36Ee-bMZTDvaEJhw" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.generated="false" org.eventb.core.label="changeAdminPassword"> - <org.eventb.core.refinesEvent name="_F5FUAA36Ee-bMZTDvaEJhw" org.eventb.core.target="changeAdminPassword"/> - </org.eventb.core.event> - <org.eventb.core.event name="_F5FUAQ36Ee-bMZTDvaEJhw" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.generated="false" org.eventb.core.label="AdminRegisterPatientToDentist"> - <org.eventb.core.refinesEvent name="_F5FUAg36Ee-bMZTDvaEJhw" org.eventb.core.target="AdminRegisterPatientToDentist"/> - <org.eventb.core.action name="_F5F7EA36Ee-bMZTDvaEJhw" org.eventb.core.assignment="nhs_num ≔ nhs_num ∖ ({register_user} ◁ nhs_num)" org.eventb.core.generated="false" org.eventb.core.label="act3"/> - </org.eventb.core.event> - <org.eventb.core.event name="_F5F7EQ36Ee-bMZTDvaEJhw" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.generated="false" org.eventb.core.label="AdminRegisterPatientToAdministrator"> - <org.eventb.core.refinesEvent name="_F5GiIA36Ee-bMZTDvaEJhw" org.eventb.core.target="AdminRegisterPatientToAdministrator"/> - <org.eventb.core.action name="_F5GiIQ36Ee-bMZTDvaEJhw" org.eventb.core.assignment="nhs_num ≔ nhs_num ∖ ({register_user} ◁ nhs_num)" org.eventb.core.generated="false" org.eventb.core.label="act3"/> - </org.eventb.core.event> - <org.eventb.core.event name="_F5GiIg36Ee-bMZTDvaEJhw" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.generated="false" org.eventb.core.label="AdminRegisterDentistToAdministrator"> - <org.eventb.core.refinesEvent name="_F5HJMA36Ee-bMZTDvaEJhw" org.eventb.core.target="AdminRegisterDentistToAdministrator"/> - </org.eventb.core.event> - <org.eventb.core.event name="_F5HJMQ36Ee-bMZTDvaEJhw" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.generated="false" org.eventb.core.label="CancelAppointment"> - <org.eventb.core.parameter name="_F5HwQA36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="pt"/> - <org.eventb.core.parameter name="_F5HwQQ36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="dent"/> - <org.eventb.core.parameter name="_F5IXUA36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="dat"/> - <org.eventb.core.parameter name="_F5IXUQ36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="treat"/> - <org.eventb.core.parameter name="_F5IXUg36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="stat"/> - <org.eventb.core.guard name="_F5I-YA36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd0" org.eventb.core.predicate="pt ∈ dom(patient)"/> - <org.eventb.core.guard name="_F5I-YQ36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd1" org.eventb.core.predicate="dent ∈ dom(dentist)"/> - <org.eventb.core.guard name="_F5JlcA36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd2" org.eventb.core.predicate="dat ∈ dates"/> - <org.eventb.core.guard name="_F5JlcQ36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd3" org.eventb.core.predicate="treat ∈ ℙ(TREATMENT)"/> - <org.eventb.core.guard name="_F5KMgA36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd4" org.eventb.core.predicate="stat ∈ status"/> - <org.eventb.core.guard name="_F5KMgQ36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd5" org.eventb.core.predicate="pt ∈ dom(loggedin)"/> - <org.eventb.core.guard name="_F5KzkA36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd6" org.eventb.core.predicate="(pt ↦ dent ↦ dat ↦ treat ↦ stat) ∈ appointments ⇒ stat = booked"/> - <org.eventb.core.action name="_F5KzkQ36Ee-bMZTDvaEJhw" org.eventb.core.assignment="appointments ≔ appointments { pt ↦ dent ↦ dat ↦ treat ↦ cancelled}" org.eventb.core.generated="false" org.eventb.core.label="act0"/> - </org.eventb.core.event> - <org.eventb.core.event name="_F5LaoA36Ee-bMZTDvaEJhw" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.generated="false" org.eventb.core.label="RebookAppointment"> - <org.eventb.core.parameter name="_F5LaoQ36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="pt"/> - <org.eventb.core.parameter name="_F5Laog36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="dent"/> - <org.eventb.core.parameter name="_F5Laow36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="dat"/> - <org.eventb.core.parameter name="_F5MowA36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="treatment"/> - <org.eventb.core.parameter name="_F5MowQ36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="newDat"/> - <org.eventb.core.parameter name="_F5Mowg36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="stat"/> - <org.eventb.core.guard name="_F5NP0A36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd0" org.eventb.core.predicate="pt ∈ dom(patient)"/> - <org.eventb.core.guard name="_F5NP0Q36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd1" org.eventb.core.predicate="dent ∈ dom(dentist)"/> - <org.eventb.core.guard name="_F5N24A36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd2" org.eventb.core.predicate="dat ∈ dates"/> - <org.eventb.core.guard name="_F5N24Q36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd3" org.eventb.core.predicate="stat ∈ status"/> - <org.eventb.core.guard name="_F5Od8A36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd4" org.eventb.core.predicate="newDat ∈ dates"/> - <org.eventb.core.guard name="_F5Od8Q36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd5" org.eventb.core.predicate="newDat > current_date"/> - <org.eventb.core.guard name="_F5PFAA36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd6" org.eventb.core.predicate="treatment ∈ dentist_treatments[{dent}]"/> - <org.eventb.core.guard name="_F5PFAQ36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd7" org.eventb.core.predicate="pt ∈ dom(loggedin)"/> - <org.eventb.core.guard name="_F5PsEA36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd8" org.eventb.core.predicate="(pt ↦ dent ↦ dat ↦ treatment ↦ stat) ∈ appointments ⇒ ((current_date − dat) > 2 ∧ stat = booked)"/> - <org.eventb.core.action name="_F5QTIA36Ee-bMZTDvaEJhw" org.eventb.core.assignment="appointments ≔ appointments { pt ↦ dent ↦ newDat ↦ treatment ↦ booked}" org.eventb.core.generated="false" org.eventb.core.label="act0"/> - </org.eventb.core.event> - <org.eventb.core.event name="_F5QTIQ36Ee-bMZTDvaEJhw" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.generated="false" org.eventb.core.label="CheckInAppointment"> - <org.eventb.core.parameter name="_F5Q6MA36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="pt"/> - <org.eventb.core.parameter name="_F5Q6MQ36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="dent"/> - <org.eventb.core.parameter name="_F5Q6Mg36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="dat"/> - <org.eventb.core.parameter name="_F5RhQA36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="treat"/> - <org.eventb.core.parameter name="_F5RhQQ36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="stat"/> - <org.eventb.core.guard name="_F5RhQg36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd0" org.eventb.core.predicate="pt ∈ dom(patient)"/> - <org.eventb.core.guard name="_F5SIUA36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd1" org.eventb.core.predicate="dent ∈ dom(dentist)"/> - <org.eventb.core.guard name="_F5SIUQ36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd2" org.eventb.core.predicate="dat ∈ dates"/> - <org.eventb.core.guard name="_F5SIUg36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd3" org.eventb.core.predicate="treat ∈ ℙ(TREATMENT)"/> - <org.eventb.core.guard name="_F5SvYA36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd4" org.eventb.core.predicate="stat ∈ status"/> - <org.eventb.core.guard name="_F5SvYQ36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd5" org.eventb.core.predicate="pt ∈ dom(loggedin)"/> - <org.eventb.core.guard name="_F5SvYg36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd6" org.eventb.core.predicate="(pt ↦ dent ↦ dat ↦ treat ↦ stat) ∈ appointments ⇒ current_date = dat"/> - <org.eventb.core.action name="_F5TWcA36Ee-bMZTDvaEJhw" org.eventb.core.assignment="appointments ≔ appointments { pt ↦ dent ↦ dat ↦ treat ↦ checked_in}" org.eventb.core.generated="false" org.eventb.core.label="act0"/> - </org.eventb.core.event> - <org.eventb.core.event name="_F5TWcQ36Ee-bMZTDvaEJhw" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.generated="false" org.eventb.core.label="CompletedAppointment"> - <org.eventb.core.parameter name="_F5T9gA36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="pt"/> - <org.eventb.core.parameter name="_F5T9gQ36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="dent"/> - <org.eventb.core.parameter name="_F5UkkA36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="dat"/> - <org.eventb.core.parameter name="_F5UkkQ36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="treat"/> - <org.eventb.core.parameter name="_F5Ukkg36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="stat"/> - <org.eventb.core.guard name="_F5VLoA36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd0" org.eventb.core.predicate="dent ∈ dom(dentist)"/> - <org.eventb.core.guard name="_F5VLoQ36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd1" org.eventb.core.predicate="pt ∈ dom(patient)"/> - <org.eventb.core.guard name="_F5VysA36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd2" org.eventb.core.predicate="dat ∈ dates"/> - <org.eventb.core.guard name="_F5VysQ36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd3" org.eventb.core.predicate="treat ∈ ℙ(TREATMENT)"/> - <org.eventb.core.guard name="_F5WZwA36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd4" org.eventb.core.predicate="stat ∈ status"/> - <org.eventb.core.guard name="_F5WZwQ36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd5" org.eventb.core.predicate="dent ∈ dom(loggedin)"/> - <org.eventb.core.guard name="_F5XA0A36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd6" org.eventb.core.predicate="(pt ↦ dent ↦ dat ↦ treat ↦ stat) ∈ appointments ⇒ current_date = dat ∧ stat = checked_in"/> - <org.eventb.core.action name="_F5XA0Q36Ee-bMZTDvaEJhw" org.eventb.core.assignment="appointments ≔ appointments { pt ↦ dent ↦ dat ↦ treat ↦ completed}" org.eventb.core.generated="false" org.eventb.core.label="act0"/> - </org.eventb.core.event> - <org.eventb.core.event name="_F5Xn4A36Ee-bMZTDvaEJhw" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.generated="false" org.eventb.core.label="MissedAppointment"> - <org.eventb.core.parameter name="_F5YO8A36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="ad"/> - <org.eventb.core.parameter name="_F5YO8Q36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="pt"/> - <org.eventb.core.parameter name="_F5YO8g36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="dent"/> - <org.eventb.core.parameter name="_F5Y2AA36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="dat"/> - <org.eventb.core.parameter name="_F5Y2AQ36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="treat"/> - <org.eventb.core.parameter name="_F5Y2Ag36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="stat"/> - <org.eventb.core.guard name="_F5ZdEA36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd0" org.eventb.core.predicate="ad ∈ dom(admin)"/> - <org.eventb.core.guard name="_F5ZdEQ36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd1" org.eventb.core.predicate="pt ∈ dom(patient)"/> - <org.eventb.core.guard name="_F5aEIA36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd2" org.eventb.core.predicate="dent ∈ dom(dentist)"/> - <org.eventb.core.guard name="_F5arMA36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd3" org.eventb.core.predicate="dat ∈ dates"/> - <org.eventb.core.guard name="_F5arMQ36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd4" org.eventb.core.predicate="stat ∈ status"/> - <org.eventb.core.guard name="_F5arMg36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd5" org.eventb.core.predicate="treat ∈ ℙ(TREATMENT)"/> - <org.eventb.core.guard name="_F5bSQA36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd6" org.eventb.core.predicate="ad ∈ dom(loggedin)"/> - <org.eventb.core.guard name="_F5bSQQ36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd7" org.eventb.core.predicate="(pt ↦ dent ↦ dat ↦ treat ↦ stat) ∈ appointments ⇒ current_date > dat ∧ stat = booked"/> - <org.eventb.core.action name="_F5b5UA36Ee-bMZTDvaEJhw" org.eventb.core.assignment="appointments ≔ appointments { pt ↦ dent ↦ dat ↦ treat ↦ missed}" org.eventb.core.generated="false" org.eventb.core.label="act0"/> - </org.eventb.core.event> - <org.eventb.core.event name="_F5cgYA36Ee-bMZTDvaEJhw" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.generated="false" org.eventb.core.label="CheckOverdueAppointments"> - <org.eventb.core.parameter name="_F5cgYQ36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="pt"/> - <org.eventb.core.parameter name="_F5dHcA36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="dent"/> - <org.eventb.core.parameter name="_F5dHcQ36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="dat"/> - <org.eventb.core.parameter name="_F5dHcg36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="treat"/> - <org.eventb.core.parameter name="_F5dugA36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="stat"/> - <org.eventb.core.guard name="_F5dugQ36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd0" org.eventb.core.predicate="pt ∈ dom(patient)"/> - <org.eventb.core.guard name="_F5eVkA36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd1" org.eventb.core.predicate="dent ∈ dom(dentist)"/> - <org.eventb.core.guard name="_F5eVkQ36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd2" org.eventb.core.predicate="dat ∈ dates"/> - <org.eventb.core.guard name="_F5eVkg36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd3" org.eventb.core.predicate="treat ∈ ℙ(TREATMENT)"/> - <org.eventb.core.guard name="_F5e8oA36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd4" org.eventb.core.predicate="stat ∈ status"/> - <org.eventb.core.guard name="_F5e8oQ36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd5" org.eventb.core.predicate="(pt ↦ dent ↦ dat ↦ treat ↦ stat) ∈ appointments ⇒ current_date > dat ∧ stat = booked"/> - <org.eventb.core.action name="_F5e8og36Ee-bMZTDvaEJhw" org.eventb.core.assignment="appointments ≔ appointments {pt ↦ dent ↦ dat ↦ treat ↦ missed}" org.eventb.core.generated="false" org.eventb.core.label="act0"/> - </org.eventb.core.event> - <org.eventb.core.event name="_F5fjsA36Ee-bMZTDvaEJhw" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.generated="false" org.eventb.core.label="GetsPatientAppointmentRecord"> - <org.eventb.core.parameter name="_F5fjsQ36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="patient_nhs_number"/> - <org.eventb.core.parameter name="_F5fjsg36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="appointment_records_result"/> - <org.eventb.core.parameter name="_F5fjsw36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="user"/> - <org.eventb.core.parameter name="_F5gKwA36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="pt"/> - <org.eventb.core.guard name="_F5gKwQ36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd0" org.eventb.core.predicate="patient_nhs_number ∈ nhs_num"/> - <org.eventb.core.guard name="_F5gKwg36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd1" org.eventb.core.predicate="appointment_records_result ⊆ appointments"/> - <org.eventb.core.guard name="_F5gKww36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd2 user ∈ USER 	 	@grd3" org.eventb.core.predicate="pt ∈ patient"/> - <org.eventb.core.guard name="_F5gx0A36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd4 pt ≔ dom(nhs_num) 	 	@grd5" org.eventb.core.predicate="user ∈ dom(admin) ∪ (dom(dentist))"/> - <org.eventb.core.guard name="_F5gx0Q36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd6" org.eventb.core.predicate="user ∈ dom(loggedin)"/> - </org.eventb.core.event> - <org.eventb.core.event name="_F5gx0g36Ee-bMZTDvaEJhw" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.generated="false" org.eventb.core.label="GetsBookedAppointmentonASpecificDay"> - <org.eventb.core.parameter name="_F5hY4A36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="patient_nhs_number"/> - <org.eventb.core.parameter name="_F5hY4Q36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="appointment_records_result"/> - <org.eventb.core.parameter name="_F5hY4g36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="user"/> - <org.eventb.core.parameter name="_F5h_8A36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="pt"/> - <org.eventb.core.parameter name="_F5h_8Q36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="date_specified"/> - <org.eventb.core.guard name="_F5h_8g36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd0" org.eventb.core.predicate="patient_nhs_number ∈ nhs_num"/> - <org.eventb.core.guard name="_F5inAA36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd1" org.eventb.core.predicate="appointment_records_result ⊆ appointments"/> - <org.eventb.core.guard name="_F5inAQ36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd2 user ∈ USER 	 	@grd3" org.eventb.core.predicate="pt ∈ patient"/> - <org.eventb.core.guard name="_F5inAg36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd4" org.eventb.core.predicate="date_specified ∈ dates"/> - <org.eventb.core.guard name="_F5jOEA36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd5" org.eventb.core.predicate="user ∈ dom(patient)"/> - </org.eventb.core.event> - <org.eventb.core.event name="_F5jOEQ36Ee-bMZTDvaEJhw" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.generated="false" org.eventb.core.label="GetsPatientsTreatmentRecord"> - <org.eventb.core.parameter name="_F5jOEg36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="pt"/> - <org.eventb.core.parameter name="_F5j1IA36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="treatment_record"/> - <org.eventb.core.parameter name="_F5j1IQ36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="user"/> - <org.eventb.core.parameter name="_F5j1Ig36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="password"/> - <org.eventb.core.guard name="_F5j1Iw36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd0" org.eventb.core.predicate="password = loggedin(pt)"/> - <org.eventb.core.guard name="_F5j1JA36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd1" org.eventb.core.predicate="user ∈ dom(loggedin)"/> - <org.eventb.core.guard name="_F5kcMA36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd2" org.eventb.core.predicate="treatment_record ∈ treatments"/> - <org.eventb.core.guard name="_F5kcMQ36Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd3" org.eventb.core.predicate="user ∈ dom(patient)"/> + <org.eventb.core.refinesMachine name="_OdBR4A4kEe-1OOl4iWIhfA" org.eventb.core.target="UserMachine"/> + <org.eventb.core.seesContext name="_OdBR4Q4kEe-1OOl4iWIhfA" org.eventb.core.target="AppointmentContext"/> + <org.eventb.core.seesContext name="_OdBR4g4kEe-1OOl4iWIhfA" org.eventb.core.target="UserContext"/> + <org.eventb.core.variable name="_OdB48A4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="patient"/> + <org.eventb.core.variable name="_OdB48Q4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="registered"/> + <org.eventb.core.variable name="_OdB48g4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="loggedin"/> + <org.eventb.core.variable name="_OdB48w4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="dentist"/> + <org.eventb.core.variable name="_OdB49A4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="admin"/> + <org.eventb.core.variable name="_OdB49Q4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="dentist_treatments"/> + <org.eventb.core.variable name="_OdCgAA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="treatments"/> + <org.eventb.core.variable name="_OdCgAQ4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="nhs_num"/> + <org.eventb.core.variable name="_OdCgAg4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="dates"/> + <org.eventb.core.variable name="_OdCgAw4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="appointments"/> + <org.eventb.core.variable name="_OdCgBA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="current_date"/> + <org.eventb.core.variable name="_OdDHEA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="status"/> + <org.eventb.core.variable name="_OdDHEQ4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="booked"/> + <org.eventb.core.variable name="_OdDHEg4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="checked_in"/> + <org.eventb.core.variable name="_OdDHEw4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="cancelled"/> + <org.eventb.core.variable name="_OdDHFA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="missed"/> + <org.eventb.core.variable name="_OdDuIA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="completed"/> + <org.eventb.core.invariant name="_OdDuIQ4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="inv0" org.eventb.core.predicate="treatments ⊆ TREATMENT"/> + <org.eventb.core.invariant name="_OdDuIg4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="inv1" org.eventb.core.predicate="dates ⊆ ℕ"/> + <org.eventb.core.invariant name="_OdDuIw4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="inv2" org.eventb.core.predicate="status ⊆ STATUS"/> + <org.eventb.core.invariant name="_OdEVMA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="inv3" org.eventb.core.predicate="appointments ⊆ dom(patient) × dom(dentist) × dates × ℙ(TREATMENT) × status"/> + <org.eventb.core.invariant name="_OdEVMQ4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="inv4" org.eventb.core.predicate="dentist_treatments ⊆ dom(dentist) × ℙ(treatments)"/> + <org.eventb.core.invariant name="_OdEVMg4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="inv5" org.eventb.core.predicate="current_date ∈ ℕ"/> + <org.eventb.core.invariant name="_OdEVMw4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="inv6" org.eventb.core.predicate="nhs_num ⊆ USER × NHSNUM"/> + <org.eventb.core.invariant name="_OdE8QA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="inv7" org.eventb.core.predicate="{booked, checked_in, cancelled, missed, completed} ⊆ STATUS"/> + <org.eventb.core.invariant name="_OdE8QQ4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="inv8" org.eventb.core.predicate="partition(status, {booked}, {checked_in}, {cancelled}, {missed}, {completed})"/> + <org.eventb.core.event name="_OdE8Qg4kEe-1OOl4iWIhfA" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.generated="false" org.eventb.core.label="INITIALISATION"> + <org.eventb.core.action name="_OdFjUA4kEe-1OOl4iWIhfA" org.eventb.core.assignment="treatments ≔ ∅" org.eventb.core.generated="false" org.eventb.core.label="act5"/> + <org.eventb.core.action name="_OdFjUQ4kEe-1OOl4iWIhfA" org.eventb.core.assignment="dentist_treatments ≔ ∅" org.eventb.core.generated="false" org.eventb.core.label="act6"/> + <org.eventb.core.action name="_OdFjUg4kEe-1OOl4iWIhfA" org.eventb.core.assignment="nhs_num ≔ ∅" org.eventb.core.generated="false" org.eventb.core.label="act7"/> + <org.eventb.core.action name="_OdGKYA4kEe-1OOl4iWIhfA" org.eventb.core.assignment="dates ≔ ∅" org.eventb.core.generated="false" org.eventb.core.label="act8"/> + <org.eventb.core.action name="_OdGKYQ4kEe-1OOl4iWIhfA" org.eventb.core.assignment="appointments ≔ ∅" org.eventb.core.generated="false" org.eventb.core.label="act9"/> + <org.eventb.core.action name="_OdGKYg4kEe-1OOl4iWIhfA" org.eventb.core.assignment="current_date ≔ 010124" org.eventb.core.generated="false" org.eventb.core.label="act10"/> + <org.eventb.core.action name="_OdGKYw4kEe-1OOl4iWIhfA" org.eventb.core.assignment="status ≔ ∅" org.eventb.core.generated="false" org.eventb.core.label="act11"/> + </org.eventb.core.event> + <org.eventb.core.event name="_OdGKZA4kEe-1OOl4iWIhfA" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.generated="false" org.eventb.core.label="registerNewPatient"> + <org.eventb.core.refinesEvent name="_OdGxcA4kEe-1OOl4iWIhfA" org.eventb.core.target="registerNewPatient"/> + <org.eventb.core.parameter name="_OdGxcQ4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="patient_nhs_num"/> + <org.eventb.core.guard name="_OdGxcg4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd4" org.eventb.core.predicate="patient_nhs_num ∈ NHSNUM"/> + <org.eventb.core.action name="_OdGxcw4kEe-1OOl4iWIhfA" org.eventb.core.assignment="nhs_num ≔ nhs_num ∪ {new_patient ↦ patient_nhs_num}" org.eventb.core.generated="false" org.eventb.core.label="act3"/> + </org.eventb.core.event> + <org.eventb.core.event name="_OdHYgA4kEe-1OOl4iWIhfA" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.generated="false" org.eventb.core.label="BookAppointment"> + <org.eventb.core.parameter name="_OdHYgQ4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="pt"/> + <org.eventb.core.parameter name="_OdHYgg4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="chosen_dentist"/> + <org.eventb.core.parameter name="_OdHYgw4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="chosen_date"/> + <org.eventb.core.parameter name="_OdHYhA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="treatment"/> + <org.eventb.core.guard name="_OdH_kA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd0" org.eventb.core.predicate="pt ∈ dom(patient)"/> + <org.eventb.core.guard name="_OdH_kQ4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd1" org.eventb.core.predicate="pt ∈ dom(loggedin)"/> + <org.eventb.core.guard name="_OdH_kg4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd2" org.eventb.core.predicate="chosen_dentist ∈ dom(dentist)"/> + <org.eventb.core.guard name="_OdH_kw4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd3" org.eventb.core.predicate="chosen_date ∈ dates"/> + <org.eventb.core.guard name="_OdH_lA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd4" org.eventb.core.predicate="chosen_date > current_date"/> + <org.eventb.core.guard name="_OdImoA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd5" org.eventb.core.predicate="treatment ∈ dentist_treatments[{chosen_dentist}]"/> + <org.eventb.core.guard name="_OdImoQ4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd6" org.eventb.core.predicate="∀a,b,c,d,e· (a ↦ b ↦ c ↦ d ↦ e) ∈ appointments ⇒ a ≠ pt ∧ d ≠ treatment"/> + <org.eventb.core.guard name="_OdImog4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd7" org.eventb.core.predicate="¬(∃b,c,d,e · (pt ↦ b ↦ c ↦ d ↦ e) ∈ appointments ∧ (chosen_date − c) < 14)"/> + <org.eventb.core.action name="_OdImow4kEe-1OOl4iWIhfA" org.eventb.core.assignment="appointments ≔ appointments ∪ {pt ↦ chosen_dentist ↦ chosen_date ↦ treatment ↦ booked}" org.eventb.core.generated="false" org.eventb.core.label="act1"/> + </org.eventb.core.event> + <org.eventb.core.event name="_OdJNsA4kEe-1OOl4iWIhfA" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.generated="false" org.eventb.core.label="loginUser"> + <org.eventb.core.refinesEvent name="_OdJNsQ4kEe-1OOl4iWIhfA" org.eventb.core.target="loginUser"/> + </org.eventb.core.event> + <org.eventb.core.event name="_OdJNsg4kEe-1OOl4iWIhfA" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.generated="false" org.eventb.core.label="logoutUser"> + <org.eventb.core.refinesEvent name="_OdJNsw4kEe-1OOl4iWIhfA" org.eventb.core.target="logoutUser"/> + </org.eventb.core.event> + <org.eventb.core.event name="_OdJNtA4kEe-1OOl4iWIhfA" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.generated="false" org.eventb.core.label="setRootAdmins"> + <org.eventb.core.refinesEvent name="_OdJ0wA4kEe-1OOl4iWIhfA" org.eventb.core.target="setRootAdmins"/> + </org.eventb.core.event> + <org.eventb.core.event name="_OdJ0wQ4kEe-1OOl4iWIhfA" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.generated="false" org.eventb.core.label="changePatientPassword"> + <org.eventb.core.refinesEvent name="_OdJ0wg4kEe-1OOl4iWIhfA" org.eventb.core.target="changePatientPassword"/> + </org.eventb.core.event> + <org.eventb.core.event name="_OdJ0ww4kEe-1OOl4iWIhfA" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.generated="false" org.eventb.core.label="changeDentistPassword"> + <org.eventb.core.refinesEvent name="_OdKb0A4kEe-1OOl4iWIhfA" org.eventb.core.target="changeDentistPassword"/> + </org.eventb.core.event> + <org.eventb.core.event name="_OdKb0Q4kEe-1OOl4iWIhfA" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.generated="false" org.eventb.core.label="changeAdminPassword"> + <org.eventb.core.refinesEvent name="_OdKb0g4kEe-1OOl4iWIhfA" org.eventb.core.target="changeAdminPassword"/> + </org.eventb.core.event> + <org.eventb.core.event name="_OdKb0w4kEe-1OOl4iWIhfA" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.generated="false" org.eventb.core.label="AdminRegisterPatientToDentist"> + <org.eventb.core.refinesEvent name="_OdKb1A4kEe-1OOl4iWIhfA" org.eventb.core.target="AdminRegisterPatientToDentist"/> + <org.eventb.core.action name="_OdKb1Q4kEe-1OOl4iWIhfA" org.eventb.core.assignment="nhs_num ≔ nhs_num ∖ ({register_user} ◁ nhs_num)" org.eventb.core.generated="false" org.eventb.core.label="act3"/> + </org.eventb.core.event> + <org.eventb.core.event name="_OdLC4A4kEe-1OOl4iWIhfA" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.generated="false" org.eventb.core.label="AdminRegisterPatientToAdministrator"> + <org.eventb.core.refinesEvent name="_OdLC4Q4kEe-1OOl4iWIhfA" org.eventb.core.target="AdminRegisterPatientToAdministrator"/> + <org.eventb.core.action name="_OdLC4g4kEe-1OOl4iWIhfA" org.eventb.core.assignment="nhs_num ≔ nhs_num ∖ ({register_user} ◁ nhs_num)" org.eventb.core.generated="false" org.eventb.core.label="act3"/> + </org.eventb.core.event> + <org.eventb.core.event name="_OdLC4w4kEe-1OOl4iWIhfA" org.eventb.core.convergence="0" org.eventb.core.extended="true" org.eventb.core.generated="false" org.eventb.core.label="AdminRegisterDentistToAdministrator"> + <org.eventb.core.refinesEvent name="_OdLp8A4kEe-1OOl4iWIhfA" org.eventb.core.target="AdminRegisterDentistToAdministrator"/> + </org.eventb.core.event> + <org.eventb.core.event name="_OdLp8Q4kEe-1OOl4iWIhfA" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.generated="false" org.eventb.core.label="CancelAppointment"> + <org.eventb.core.parameter name="_OdMRAA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="pt"/> + <org.eventb.core.parameter name="_OdMRAQ4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="dent"/> + <org.eventb.core.parameter name="_OdMRAg4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="dat"/> + <org.eventb.core.parameter name="_OdMRAw4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="treat"/> + <org.eventb.core.parameter name="_OdM4EA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="stat"/> + <org.eventb.core.guard name="_OdM4EQ4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd0" org.eventb.core.predicate="pt ∈ dom(patient)"/> + <org.eventb.core.guard name="_OdM4Eg4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd1" org.eventb.core.predicate="dent ∈ dom(dentist)"/> + <org.eventb.core.guard name="_OdNfIA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd2" org.eventb.core.predicate="dat ∈ dates"/> + <org.eventb.core.guard name="_OdNfIQ4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd3" org.eventb.core.predicate="treat ∈ ℙ(TREATMENT)"/> + <org.eventb.core.guard name="_OdNfIg4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd4" org.eventb.core.predicate="stat ∈ status"/> + <org.eventb.core.guard name="_OdNfIw4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd5" org.eventb.core.predicate="pt ∈ dom(loggedin)"/> + <org.eventb.core.guard name="_OdOGMA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd6" org.eventb.core.predicate="(pt ↦ dent ↦ dat ↦ treat ↦ stat) ∈ appointments ⇒ stat = booked"/> + <org.eventb.core.action name="_OdOGMQ4kEe-1OOl4iWIhfA" org.eventb.core.assignment="appointments ≔ appointments { pt ↦ dent ↦ dat ↦ treat ↦ cancelled}" org.eventb.core.generated="false" org.eventb.core.label="act0"/> + </org.eventb.core.event> + <org.eventb.core.event name="_OdOGMg4kEe-1OOl4iWIhfA" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.generated="false" org.eventb.core.label="RebookAppointment"> + <org.eventb.core.parameter name="_OdOGMw4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="pt"/> + <org.eventb.core.parameter name="_OdOGNA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="dent"/> + <org.eventb.core.parameter name="_OdOtQA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="dat"/> + <org.eventb.core.parameter name="_OdOtQQ4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="treatment"/> + <org.eventb.core.parameter name="_OdOtQg4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="newDat"/> + <org.eventb.core.parameter name="_OdOtQw4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="stat"/> + <org.eventb.core.guard name="_OdOtRA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd0" org.eventb.core.predicate="pt ∈ dom(patient)"/> + <org.eventb.core.guard name="_OdOtRQ4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd1" org.eventb.core.predicate="dent ∈ dom(dentist)"/> + <org.eventb.core.guard name="_OdPUUA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd2" org.eventb.core.predicate="dat ∈ dates"/> + <org.eventb.core.guard name="_OdPUUQ4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd3" org.eventb.core.predicate="stat ∈ status"/> + <org.eventb.core.guard name="_OdPUUg4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd4" org.eventb.core.predicate="newDat ∈ dates"/> + <org.eventb.core.guard name="_OdPUUw4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd5" org.eventb.core.predicate="newDat > current_date"/> + <org.eventb.core.guard name="_OdP7YA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd6" org.eventb.core.predicate="treatment ∈ dentist_treatments[{dent}]"/> + <org.eventb.core.guard name="_OdP7YQ4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd7" org.eventb.core.predicate="pt ∈ dom(loggedin)"/> + <org.eventb.core.guard name="_OdP7Yg4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd8" org.eventb.core.predicate="(pt ↦ dent ↦ dat ↦ treatment ↦ stat) ∈ appointments ⇒ ((current_date − dat) > 2 ∧ stat = booked)"/> + <org.eventb.core.action name="_OdP7Yw4kEe-1OOl4iWIhfA" org.eventb.core.assignment="appointments ≔ appointments { pt ↦ dent ↦ newDat ↦ treatment ↦ booked}" org.eventb.core.generated="false" org.eventb.core.label="act0"/> + </org.eventb.core.event> + <org.eventb.core.event name="_OdP7ZA4kEe-1OOl4iWIhfA" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.generated="false" org.eventb.core.label="CheckInAppointment"> + <org.eventb.core.parameter name="_OdQicA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="pt"/> + <org.eventb.core.parameter name="_OdQicQ4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="dent"/> + <org.eventb.core.parameter name="_OdQicg4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="dat"/> + <org.eventb.core.parameter name="_OdQicw4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="treat"/> + <org.eventb.core.parameter name="_OdQidA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="stat"/> + <org.eventb.core.guard name="_OdRJgA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd0" org.eventb.core.predicate="pt ∈ dom(patient)"/> + <org.eventb.core.guard name="_OdRJgQ4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd1" org.eventb.core.predicate="dent ∈ dom(dentist)"/> + <org.eventb.core.guard name="_OdRJgg4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd2" org.eventb.core.predicate="dat ∈ dates"/> + <org.eventb.core.guard name="_OdRJgw4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd3" org.eventb.core.predicate="treat ∈ ℙ(TREATMENT)"/> + <org.eventb.core.guard name="_OdRJhA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd4" org.eventb.core.predicate="stat ∈ status"/> + <org.eventb.core.guard name="_OdRwkA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd5" org.eventb.core.predicate="pt ∈ dom(loggedin)"/> + <org.eventb.core.guard name="_OdRwkQ4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd6" org.eventb.core.predicate="(pt ↦ dent ↦ dat ↦ treat ↦ stat) ∈ appointments ⇒ current_date = dat"/> + <org.eventb.core.action name="_OdRwkg4kEe-1OOl4iWIhfA" org.eventb.core.assignment="appointments ≔ appointments { pt ↦ dent ↦ dat ↦ treat ↦ checked_in}" org.eventb.core.generated="false" org.eventb.core.label="act0"/> + </org.eventb.core.event> + <org.eventb.core.event name="_OdRwkw4kEe-1OOl4iWIhfA" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.generated="false" org.eventb.core.label="CompletedAppointment"> + <org.eventb.core.parameter name="_OdSXoA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="pt"/> + <org.eventb.core.parameter name="_OdSXoQ4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="dent"/> + <org.eventb.core.parameter name="_OdSXog4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="dat"/> + <org.eventb.core.parameter name="_OdSXow4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="treat"/> + <org.eventb.core.parameter name="_OdSXpA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="stat"/> + <org.eventb.core.guard name="_OdSXpQ4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd0" org.eventb.core.predicate="dent ∈ dom(dentist)"/> + <org.eventb.core.guard name="_OdSXpg4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd1" org.eventb.core.predicate="pt ∈ dom(patient)"/> + <org.eventb.core.guard name="_OdS-sA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd2" org.eventb.core.predicate="dat ∈ dates"/> + <org.eventb.core.guard name="_OdS-sQ4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd3" org.eventb.core.predicate="treat ∈ ℙ(TREATMENT)"/> + <org.eventb.core.guard name="_OdS-sg4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd4" org.eventb.core.predicate="stat ∈ status"/> + <org.eventb.core.guard name="_OdS-sw4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd5" org.eventb.core.predicate="dent ∈ dom(loggedin)"/> + <org.eventb.core.guard name="_OdS-tA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd6" org.eventb.core.predicate="(pt ↦ dent ↦ dat ↦ treat ↦ stat) ∈ appointments ⇒ current_date = dat ∧ stat = checked_in"/> + <org.eventb.core.action name="_OdTlwA4kEe-1OOl4iWIhfA" org.eventb.core.assignment="appointments ≔ appointments { pt ↦ dent ↦ dat ↦ treat ↦ completed}" org.eventb.core.generated="false" org.eventb.core.label="act0"/> + </org.eventb.core.event> + <org.eventb.core.event name="_OdTlwQ4kEe-1OOl4iWIhfA" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.generated="false" org.eventb.core.label="MissedAppointment"> + <org.eventb.core.parameter name="_OdUM0A4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="ad"/> + <org.eventb.core.parameter name="_OdUM0Q4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="pt"/> + <org.eventb.core.parameter name="_OdUM0g4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="dent"/> + <org.eventb.core.parameter name="_OdUM0w4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="dat"/> + <org.eventb.core.parameter name="_OdUM1A4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="treat"/> + <org.eventb.core.parameter name="_OdUM1Q4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="stat"/> + <org.eventb.core.guard name="_OdUz4A4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd0" org.eventb.core.predicate="ad ∈ dom(admin)"/> + <org.eventb.core.guard name="_OdUz4Q4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd1" org.eventb.core.predicate="pt ∈ dom(patient)"/> + <org.eventb.core.guard name="_OdUz4g4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd2" org.eventb.core.predicate="dent ∈ dom(dentist)"/> + <org.eventb.core.guard name="_OdUz4w4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd3" org.eventb.core.predicate="dat ∈ dates"/> + <org.eventb.core.guard name="_OdUz5A4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd4" org.eventb.core.predicate="stat ∈ status"/> + <org.eventb.core.guard name="_OdVa8A4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd5" org.eventb.core.predicate="treat ∈ ℙ(TREATMENT)"/> + <org.eventb.core.guard name="_OdVa8Q4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd6" org.eventb.core.predicate="ad ∈ dom(loggedin)"/> + <org.eventb.core.guard name="_OdVa8g4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd7" org.eventb.core.predicate="(pt ↦ dent ↦ dat ↦ treat ↦ stat) ∈ appointments ⇒ current_date > dat ∧ stat = booked"/> + <org.eventb.core.action name="_OdVa8w4kEe-1OOl4iWIhfA" org.eventb.core.assignment="appointments ≔ appointments { pt ↦ dent ↦ dat ↦ treat ↦ missed}" org.eventb.core.generated="false" org.eventb.core.label="act0"/> + </org.eventb.core.event> + <org.eventb.core.event name="_OdWCAA4kEe-1OOl4iWIhfA" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.generated="false" org.eventb.core.label="CheckOverdueAppointments"> + <org.eventb.core.parameter name="_OdWCAQ4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="pt"/> + <org.eventb.core.parameter name="_OdWCAg4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="dent"/> + <org.eventb.core.parameter name="_OdWCAw4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="dat"/> + <org.eventb.core.parameter name="_OdWCBA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="treat"/> + <org.eventb.core.parameter name="_OdWpEA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="stat"/> + <org.eventb.core.guard name="_OdWpEQ4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd0" org.eventb.core.predicate="pt ∈ dom(patient)"/> + <org.eventb.core.guard name="_OdWpEg4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd1" org.eventb.core.predicate="dent ∈ dom(dentist)"/> + <org.eventb.core.guard name="_OdWpEw4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd2" org.eventb.core.predicate="dat ∈ dates"/> + <org.eventb.core.guard name="_OdWpFA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd3" org.eventb.core.predicate="treat ∈ ℙ(TREATMENT)"/> + <org.eventb.core.guard name="_OdWpFQ4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd4" org.eventb.core.predicate="stat ∈ status"/> + <org.eventb.core.guard name="_OdXQIA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd5" org.eventb.core.predicate="(pt ↦ dent ↦ dat ↦ treat ↦ stat) ∈ appointments ⇒ current_date > dat ∧ stat = booked"/> + <org.eventb.core.action name="_OdXQIQ4kEe-1OOl4iWIhfA" org.eventb.core.assignment="appointments ≔ appointments {pt ↦ dent ↦ dat ↦ treat ↦ missed}" org.eventb.core.generated="false" org.eventb.core.label="act0"/> + </org.eventb.core.event> + <org.eventb.core.event name="_OdXQIg4kEe-1OOl4iWIhfA" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.generated="false" org.eventb.core.label="GetsPatientAppointmentRecord"> + <org.eventb.core.parameter name="_OdX3MA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="patient_nhs_number"/> + <org.eventb.core.parameter name="_OdX3MQ4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="appointment_records_result"/> + <org.eventb.core.parameter name="_OdX3Mg4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="user"/> + <org.eventb.core.parameter name="_OdX3Mw4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="pt"/> + <org.eventb.core.guard name="_OdX3NA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd0" org.eventb.core.predicate="patient_nhs_number ∈ nhs_num"/> + <org.eventb.core.guard name="_OdX3NQ4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd1" org.eventb.core.predicate="appointment_records_result ⊆ appointments"/> + <org.eventb.core.guard name="_OdX3Ng4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd2 user ∈ USER 	 	@grd3" org.eventb.core.predicate="pt ∈ patient"/> + <org.eventb.core.guard name="_OdYeQA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd4 pt ≔ dom(nhs_num) 	 	@grd5" org.eventb.core.predicate="user ∈ dom(admin) ∪ (dom(dentist))"/> + <org.eventb.core.guard name="_OdYeQQ4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd6" org.eventb.core.predicate="user ∈ dom(loggedin)"/> + </org.eventb.core.event> + <org.eventb.core.event name="_OdYeQg4kEe-1OOl4iWIhfA" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.generated="false" org.eventb.core.label="GetsBookedAppointmentonASpecificDay"> + <org.eventb.core.parameter name="_OdYeQw4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="patient_nhs_number"/> + <org.eventb.core.parameter name="_OdYeRA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="appointment_records_result"/> + <org.eventb.core.parameter name="_OdYeRQ4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="user"/> + <org.eventb.core.parameter name="_OdYeRg4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="pt"/> + <org.eventb.core.parameter name="_OdYeRw4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="date_specified"/> + <org.eventb.core.guard name="_OdZFUA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd0" org.eventb.core.predicate="patient_nhs_number ∈ nhs_num"/> + <org.eventb.core.guard name="_OdZFUQ4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd1" org.eventb.core.predicate="appointment_records_result ⊆ appointments"/> + <org.eventb.core.guard name="_OdZFUg4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd2 user ∈ USER 	 	@grd3" org.eventb.core.predicate="pt ∈ patient"/> + <org.eventb.core.guard name="_OdZFUw4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd4" org.eventb.core.predicate="date_specified ∈ dates"/> + <org.eventb.core.guard name="_OdZFVA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd5" org.eventb.core.predicate="user ∈ dom(patient)"/> + </org.eventb.core.event> + <org.eventb.core.event name="_OdZsYA4kEe-1OOl4iWIhfA" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.generated="false" org.eventb.core.label="GetsPatientsTreatmentRecord"> + <org.eventb.core.parameter name="_OdZsYQ4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="pt"/> + <org.eventb.core.parameter name="_OdZsYg4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="treatment_record"/> + <org.eventb.core.parameter name="_OdZsYw4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="user"/> + <org.eventb.core.parameter name="_OdZsZA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="password"/> + <org.eventb.core.guard name="_OdZsZQ4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd0" org.eventb.core.predicate="password = loggedin(pt)"/> + <org.eventb.core.guard name="_OdaTcA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd1" org.eventb.core.predicate="user ∈ dom(loggedin)"/> + <org.eventb.core.guard name="_OdaTcQ4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd2" org.eventb.core.predicate="treatment_record ∈ treatments"/> + <org.eventb.core.guard name="_OdaTcg4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd3" org.eventb.core.predicate="user ∈ dom(patient)"/> </org.eventb.core.event> </org.eventb.core.machineFile> diff --git a/UserManagement/AppointmentMachine.bumx b/UserManagement/AppointmentMachine.bumx index f3b75d62c337ed17bc1519ac07859bf79a6dc710..dfbcf5ab23455e0644b95245abe70baf18673828 100644 --- a/UserManagement/AppointmentMachine.bumx +++ b/UserManagement/AppointmentMachine.bumx @@ -62,9 +62,24 @@ events where @grd4: patient_nhs_num ∈ NHSNUM then - @act3: nhs_num ≔ nhs_num ∪ {new_patient ↦ patient_nhs_num} + @act3: nhs_num ≔ nhs_num ∪ {new_patient ↦ patient_nhs_num} //adding nhs number of new patient end + /* + * REQ 12: A logged-in patient can book a new appointment for a + treatment with a registered dentist. + * + * REQ 13: The booked dentist must be qualified to perform the + treatment. + * + * REQ 14: An appointment can only be booked for a future date. + * + * REQ 15: A patient cannot have two booked appointments for the + same treatment. + * + * REQ 16: A patient cannot have a booked appointment within 14 + days of the patient’s receiving the same treatment. + */ event BookAppointment any pt @@ -77,8 +92,8 @@ events @grd2: chosen_dentist ∈ dom(dentist) @grd3: chosen_date ∈ dates @grd4: chosen_date > current_date - @grd5: treatment ∈ dentist_treatments[{chosen_dentist}] - @grd6: ∀a,b,c,d,e· (a ↦ b ↦ c ↦ d ↦ e) ∈ appointments ⇒ a ≠ pt ∧ d ≠ treatment + @grd5: treatment ∈ dentist_treatments[{chosen_dentist}] // checking treatment is in the chosen dentists list of treatments + @grd6: ∀a,b,c,d,e· (a ↦ b ↦ c ↦ d ↦ e) ∈ appointments ⇒ a ≠ pt ∧ d ≠ treatment // checking patient hasn't already booked an appointment for the same treatment @grd7: ¬(∃b,c,d,e · (pt ↦ b ↦ c ↦ d ↦ e) ∈ appointments ∧ (chosen_date − c) < 14)//patient cannot book appointment for same treatment within 14 days then @act1: appointments ≔ appointments ∪ {pt ↦ chosen_dentist ↦ chosen_date ↦ treatment ↦ booked} @@ -104,12 +119,12 @@ events event AdminRegisterPatientToDentist extends AdminRegisterPatientToDentist then - @act3: nhs_num ≔ nhs_num ∖ ({register_user} ◁ nhs_num) + @act3: nhs_num ≔ nhs_num ∖ ({register_user} ◁ nhs_num) // removing patients nhs number end event AdminRegisterPatientToAdministrator extends AdminRegisterPatientToAdministrator then - @act3: nhs_num ≔ nhs_num ∖ ({register_user} ◁ nhs_num) + @act3: nhs_num ≔ nhs_num ∖ ({register_user} ◁ nhs_num)// removing patients nhs number end event AdminRegisterDentistToAdministrator extends AdminRegisterDentistToAdministrator diff --git a/UserManagement/UserContext.bcc b/UserManagement/UserContext.bcc deleted file mode 100644 index 37601060bc7af66400fe18bcc67f4ee899239281..0000000000000000000000000000000000000000 --- a/UserManagement/UserContext.bcc +++ /dev/null @@ -1,5 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<org.eventb.core.scContextFile org.eventb.core.accurate="true" org.eventb.core.configuration="org.eventb.core.fwd;ac.soton.xeventb.xcontext.base"> - <org.eventb.core.scCarrierSet name="USER" org.eventb.core.source="/UserManagement/UserContext.buc|org.eventb.core.contextFile#UserContext|org.eventb.core.carrierSet#_w8gzcA35Ee-bMZTDvaEJhw" org.eventb.core.type="ℙ(USER)"/> - <org.eventb.core.scCarrierSet name="PASSWORD" org.eventb.core.source="/UserManagement/UserContext.buc|org.eventb.core.contextFile#UserContext|org.eventb.core.carrierSet#_w8iooA35Ee-bMZTDvaEJhw" org.eventb.core.type="ℙ(PASSWORD)"/> -</org.eventb.core.scContextFile> diff --git a/UserManagement/UserContext.bpo b/UserManagement/UserContext.bpo deleted file mode 100644 index b930336941dd085e51ba9ac21412984ebfd4e135..0000000000000000000000000000000000000000 --- a/UserManagement/UserContext.bpo +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<org.eventb.core.poFile org.eventb.core.poStamp="0"> - <org.eventb.core.poPredicateSet name="ABSHYP" org.eventb.core.poStamp="0"> - <org.eventb.core.poIdentifier name="USER" org.eventb.core.type="ℙ(USER)"/> - <org.eventb.core.poIdentifier name="PASSWORD" org.eventb.core.type="ℙ(PASSWORD)"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poPredicateSet name="ALLHYP" org.eventb.core.parentSet="/UserManagement/UserContext.bpo|org.eventb.core.poFile#UserContext|org.eventb.core.poPredicateSet#ABSHYP" org.eventb.core.poStamp="0"/> -</org.eventb.core.poFile> diff --git a/UserManagement/UserContext.bps b/UserManagement/UserContext.bps deleted file mode 100644 index ced513e210f482c3c7cafb26e5e709e8b27ac922..0000000000000000000000000000000000000000 --- a/UserManagement/UserContext.bps +++ /dev/null @@ -1,2 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<org.eventb.core.psFile/> \ No newline at end of file diff --git a/UserManagement/UserContext.buc b/UserManagement/UserContext.buc index 87c69417d19fe6552c8d73ef38ae29cc165b0132..d7c2495c6a81f018d44c7877f90bc73e465ff42d 100644 --- a/UserManagement/UserContext.buc +++ b/UserManagement/UserContext.buc @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> <org.eventb.core.contextFile org.eventb.core.configuration="org.eventb.core.fwd;ac.soton.xeventb.xcontext.base" org.eventb.core.generated="false" version="3"> - <org.eventb.core.carrierSet name="_w8gzcA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="USER"/> - <org.eventb.core.carrierSet name="_w8iooA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="PASSWORD"/> + <org.eventb.core.carrierSet name="_OeQA8A4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="USER"/> + <org.eventb.core.carrierSet name="_OeQA8Q4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="PASSWORD"/> </org.eventb.core.contextFile> diff --git a/UserManagement/UserMachine.bcm b/UserManagement/UserMachine.bcm deleted file mode 100644 index 799dacd094bac4efc3ca43501b8ac39ee4009870..0000000000000000000000000000000000000000 --- a/UserManagement/UserMachine.bcm +++ /dev/null @@ -1,132 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<org.eventb.core.scMachineFile org.eventb.core.accurate="true" org.eventb.core.configuration="org.eventb.core.fwd;ac.soton.xeventb.xmachine.base"> - <org.eventb.core.scSeesContext name="'" org.eventb.core.scTarget="/UserManagement/UserContext.bcc" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.seesContext#_wvz0MA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.scInternalContext name="UserContext"> - <org.eventb.core.scCarrierSet name="USER" org.eventb.core.source="/UserManagement/UserContext.buc|org.eventb.core.contextFile#UserContext|org.eventb.core.carrierSet#_w8gzcA35Ee-bMZTDvaEJhw" org.eventb.core.type="ℙ(USER)"/> - <org.eventb.core.scCarrierSet name="PASSWORD" org.eventb.core.source="/UserManagement/UserContext.buc|org.eventb.core.contextFile#UserContext|org.eventb.core.carrierSet#_w8iooA35Ee-bMZTDvaEJhw" org.eventb.core.type="ℙ(PASSWORD)"/> - </org.eventb.core.scInternalContext> - <org.eventb.core.scInvariant name="UserContexu" org.eventb.core.label="inv0" org.eventb.core.predicate="admin∈USER ⇸ PASSWORD" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wv7I8A35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scInvariant name="UserContexv" org.eventb.core.label="inv1" org.eventb.core.predicate="dentist∈USER ⇸ PASSWORD" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wv-MQA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scInvariant name="UserContexw" org.eventb.core.label="inv2" org.eventb.core.predicate="patient∈USER ⇸ PASSWORD" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wv_aYA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scInvariant name="UserContexx" org.eventb.core.label="inv3" org.eventb.core.predicate="dom(admin)⊆USER" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwB2oA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scInvariant name="UserContexy" org.eventb.core.label="inv4" org.eventb.core.predicate="dom(dentist)⊆USER" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwJLYA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scInvariant name="UserContexz" org.eventb.core.label="inv5" org.eventb.core.predicate="dom(patient)⊆USER" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwMOsA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scInvariant name="UserContex{" org.eventb.core.label="inv6" org.eventb.core.predicate="admin∩dentist∩patient=(∅ ⦂ ℙ(USER×PASSWORD))" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwOq8A35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scInvariant name="UserContex|" org.eventb.core.label="inv7" org.eventb.core.predicate="registered=admin∪dentist∪patient" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwQgIA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scInvariant name="UserContex}" org.eventb.core.label="inv8" org.eventb.core.predicate="loggedin⊆registered" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwVYoA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scVariable name="loggedin" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.variable#_wv5TwA35Ee-bMZTDvaEJhw" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.scVariable name="patient" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.variable#_wv4ssA35Ee-bMZTDvaEJhw" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.scVariable name="dentist" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.variable#_wv3ekA35Ee-bMZTDvaEJhw" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.scVariable name="registered" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.variable#_wv6h4A35Ee-bMZTDvaEJhw" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.scVariable name="admin" org.eventb.core.abstract="false" org.eventb.core.concrete="true" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.variable#_wv2QcA35Ee-bMZTDvaEJhw" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.scEvent name="UserContex~" org.eventb.core.accurate="true" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.label="INITIALISATION" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wwWmwA35Ee-bMZTDvaEJhw"> - <org.eventb.core.scAction name="'" org.eventb.core.assignment="admin ≔ ∅ ⦂ ℙ(USER×PASSWORD)" org.eventb.core.label="act0" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wwWmwA35Ee-bMZTDvaEJhw|org.eventb.core.action#_wwYb8A35Ee-bMZTDvaEJhw"/> - <org.eventb.core.scAction name="(" org.eventb.core.assignment="dentist ≔ ∅ ⦂ ℙ(USER×PASSWORD)" org.eventb.core.label="act1" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wwWmwA35Ee-bMZTDvaEJhw|org.eventb.core.action#_wwaRIA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.scAction name=")" org.eventb.core.assignment="patient ≔ ∅ ⦂ ℙ(USER×PASSWORD)" org.eventb.core.label="act2" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wwWmwA35Ee-bMZTDvaEJhw|org.eventb.core.action#_wwctYA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.scAction name="*" org.eventb.core.assignment="loggedin ≔ ∅ ⦂ ℙ(USER×PASSWORD)" org.eventb.core.label="act3" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wwWmwA35Ee-bMZTDvaEJhw|org.eventb.core.action#_wwd7gA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.scAction name="+" org.eventb.core.assignment="registered ≔ ∅ ⦂ ℙ(USER×PASSWORD)" org.eventb.core.label="act4" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wwWmwA35Ee-bMZTDvaEJhw|org.eventb.core.action#_wwfJoA35Ee-bMZTDvaEJhw"/> - </org.eventb.core.scEvent> - <org.eventb.core.scEvent name="UserContey'" org.eventb.core.accurate="true" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.label="setRootAdmins" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wwfwsA35Ee-bMZTDvaEJhw"> - <org.eventb.core.scGuard name="'" org.eventb.core.label="grd0" org.eventb.core.predicate="root∈USER" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wwfwsA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wwo6oA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="(" org.eventb.core.label="grd1" org.eventb.core.predicate="root_password∈PASSWORD" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wwfwsA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wwslAA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name=")" org.eventb.core.label="grd2" org.eventb.core.predicate="admin=(∅ ⦂ ℙ(USER×PASSWORD))" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wwfwsA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wwuaMA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scParameter name="root_password" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wwfwsA35Ee-bMZTDvaEJhw|org.eventb.core.parameter#_wwnFcA35Ee-bMZTDvaEJhw" org.eventb.core.type="PASSWORD"/> - <org.eventb.core.scParameter name="root" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wwfwsA35Ee-bMZTDvaEJhw|org.eventb.core.parameter#_wwhl4A35Ee-bMZTDvaEJhw" org.eventb.core.type="USER"/> - <org.eventb.core.scAction name="root_passwore" org.eventb.core.assignment="admin ≔ {root ↦ root_password}" org.eventb.core.label="act0" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wwfwsA35Ee-bMZTDvaEJhw|org.eventb.core.action#_www2cA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.scAction name="root_passworf" org.eventb.core.assignment="registered ≔ {root ↦ root_password}" org.eventb.core.label="act1" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wwfwsA35Ee-bMZTDvaEJhw|org.eventb.core.action#_ww-R0A35Ee-bMZTDvaEJhw"/> - </org.eventb.core.scEvent> - <org.eventb.core.scEvent name="UserContey(" org.eventb.core.accurate="true" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.label="registerNewPatient" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxFmkA35Ee-bMZTDvaEJhw"> - <org.eventb.core.scGuard name="'" org.eventb.core.label="grd0" org.eventb.core.predicate="new_patient∈USER" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxFmkA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wxKfEA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="(" org.eventb.core.label="grd1" org.eventb.core.predicate="new_patient_password∈PASSWORD" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxFmkA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wxLtMA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name=")" org.eventb.core.label="grd2" org.eventb.core.predicate="new_patient∉dom(registered)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxFmkA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wxNiYA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="*" org.eventb.core.label="grd3" org.eventb.core.predicate="card(admin)>0" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxFmkA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wxQlsA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scParameter name="new_patient_password" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxFmkA35Ee-bMZTDvaEJhw|org.eventb.core.parameter#_wxJQ8A35Ee-bMZTDvaEJhw" org.eventb.core.type="PASSWORD"/> - <org.eventb.core.scParameter name="new_patient" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxFmkA35Ee-bMZTDvaEJhw|org.eventb.core.parameter#_wxIp4A35Ee-bMZTDvaEJhw" org.eventb.core.type="USER"/> - <org.eventb.core.scAction name="new_patient_passwore" org.eventb.core.assignment="patient ≔ patient∪{new_patient ↦ new_patient_password}" org.eventb.core.label="act1" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxFmkA35Ee-bMZTDvaEJhw|org.eventb.core.action#_wxTpAA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.scAction name="new_patient_passworf" org.eventb.core.assignment="registered ≔ registered∪{new_patient ↦ new_patient_password}" org.eventb.core.label="act2" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxFmkA35Ee-bMZTDvaEJhw|org.eventb.core.action#_wxVeMA35Ee-bMZTDvaEJhw"/> - </org.eventb.core.scEvent> - <org.eventb.core.scEvent name="UserContey)" org.eventb.core.accurate="true" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.label="loginUser" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxXTYA35Ee-bMZTDvaEJhw"> - <org.eventb.core.scGuard name="'" org.eventb.core.label="grd0" org.eventb.core.predicate="user∈dom(registered)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxXTYA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wxeoIA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="(" org.eventb.core.label="grd1" org.eventb.core.predicate="user_password=registered(user)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxXTYA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wxkHsA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name=")" org.eventb.core.label="grd2" org.eventb.core.predicate="user∉dom(loggedin)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxXTYA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wxl84A35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scParameter name="user_password" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxXTYA35Ee-bMZTDvaEJhw|org.eventb.core.parameter#_wxdaAA35Ee-bMZTDvaEJhw" org.eventb.core.type="PASSWORD"/> - <org.eventb.core.scParameter name="user" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxXTYA35Ee-bMZTDvaEJhw|org.eventb.core.parameter#_wxaWsA35Ee-bMZTDvaEJhw" org.eventb.core.type="USER"/> - <org.eventb.core.scAction name="user_passwore" org.eventb.core.assignment="loggedin ≔ loggedin∪{user ↦ user_password}" org.eventb.core.label="act0" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxXTYA35Ee-bMZTDvaEJhw|org.eventb.core.action#_wxnyEA35Ee-bMZTDvaEJhw"/> - </org.eventb.core.scEvent> - <org.eventb.core.scEvent name="UserContey*" org.eventb.core.accurate="true" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.label="logoutUser" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxpAMA35Ee-bMZTDvaEJhw"> - <org.eventb.core.scGuard name="'" org.eventb.core.label="grd0" org.eventb.core.predicate="user∈dom(loggedin)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxpAMA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wxwU8A35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="(" org.eventb.core.label="grd1" org.eventb.core.predicate="password=loggedin(user)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxpAMA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wx0mYA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scParameter name="password" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxpAMA35Ee-bMZTDvaEJhw|org.eventb.core.parameter#_wxt4sA35Ee-bMZTDvaEJhw" org.eventb.core.type="PASSWORD"/> - <org.eventb.core.scParameter name="user" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxpAMA35Ee-bMZTDvaEJhw|org.eventb.core.parameter#_wxq1YA35Ee-bMZTDvaEJhw" org.eventb.core.type="USER"/> - <org.eventb.core.scAction name="passwore" org.eventb.core.assignment="loggedin ≔ loggedin ∖ {user ↦ password}" org.eventb.core.label="act0" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxpAMA35Ee-bMZTDvaEJhw|org.eventb.core.action#_wx4QwA35Ee-bMZTDvaEJhw"/> - </org.eventb.core.scEvent> - <org.eventb.core.scEvent name="UserContey+" org.eventb.core.accurate="true" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.label="changePatientPassword" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wx5e4A35Ee-bMZTDvaEJhw"> - <org.eventb.core.scGuard name="'" org.eventb.core.label="grd0" org.eventb.core.predicate="user∈dom(patient)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wx5e4A35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wx-XYA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="(" org.eventb.core.label="grd1" org.eventb.core.predicate="password=loggedin(user)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wx5e4A35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wx_lgA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name=")" org.eventb.core.label="grd2" org.eventb.core.predicate="new_password∈PASSWORD" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wx5e4A35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wyAMkA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="*" org.eventb.core.label="grd3" org.eventb.core.predicate="user∈dom(loggedin)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wx5e4A35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wyCo0A35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scParameter name="password" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wx5e4A35Ee-bMZTDvaEJhw|org.eventb.core.parameter#_wx9JQA35Ee-bMZTDvaEJhw" org.eventb.core.type="PASSWORD"/> - <org.eventb.core.scParameter name="new_password" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wx5e4A35Ee-bMZTDvaEJhw|org.eventb.core.parameter#_wx9wUA35Ee-bMZTDvaEJhw" org.eventb.core.type="PASSWORD"/> - <org.eventb.core.scParameter name="user" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wx5e4A35Ee-bMZTDvaEJhw|org.eventb.core.parameter#_wx8iMA35Ee-bMZTDvaEJhw" org.eventb.core.type="USER"/> - <org.eventb.core.scAction name="new_passwore" org.eventb.core.assignment="loggedin ≔ loggedin{user ↦ new_password}" org.eventb.core.label="act0" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wx5e4A35Ee-bMZTDvaEJhw|org.eventb.core.action#_wyD28A35Ee-bMZTDvaEJhw"/> - <org.eventb.core.scAction name="new_passworf" org.eventb.core.assignment="registered ≔ registered{user ↦ new_password}" org.eventb.core.label="act1" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wx5e4A35Ee-bMZTDvaEJhw|org.eventb.core.action#_wyFFEA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.scAction name="new_passworg" org.eventb.core.assignment="patient ≔ patient{user ↦ new_password}" org.eventb.core.label="act2" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wx5e4A35Ee-bMZTDvaEJhw|org.eventb.core.action#_wyFsIA35Ee-bMZTDvaEJhw"/> - </org.eventb.core.scEvent> - <org.eventb.core.scEvent name="UserContey," org.eventb.core.accurate="true" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.label="changeDentistPassword" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyG6QA35Ee-bMZTDvaEJhw"> - <org.eventb.core.scGuard name="'" org.eventb.core.label="grd0" org.eventb.core.predicate="user∈dom(dentist)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyG6QA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wyJ9kA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="(" org.eventb.core.label="grd1" org.eventb.core.predicate="password=loggedin(user)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyG6QA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wyO2EA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name=")" org.eventb.core.label="grd2" org.eventb.core.predicate="new_password∈PASSWORD" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyG6QA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wyQEMA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="*" org.eventb.core.label="grd3" org.eventb.core.predicate="user∈dom(loggedin)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyG6QA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wyR5YA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scParameter name="password" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyG6QA35Ee-bMZTDvaEJhw|org.eventb.core.parameter#_wyIvcA35Ee-bMZTDvaEJhw" org.eventb.core.type="PASSWORD"/> - <org.eventb.core.scParameter name="new_password" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyG6QA35Ee-bMZTDvaEJhw|org.eventb.core.parameter#_wyJWgA35Ee-bMZTDvaEJhw" org.eventb.core.type="PASSWORD"/> - <org.eventb.core.scParameter name="user" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyG6QA35Ee-bMZTDvaEJhw|org.eventb.core.parameter#_wyIIYA35Ee-bMZTDvaEJhw" org.eventb.core.type="USER"/> - <org.eventb.core.scAction name="new_passwore" org.eventb.core.assignment="loggedin ≔ loggedin{user ↦ new_password}" org.eventb.core.label="act0" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyG6QA35Ee-bMZTDvaEJhw|org.eventb.core.action#_wyTHgA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.scAction name="new_passworf" org.eventb.core.assignment="registered ≔ registered{user ↦ new_password}" org.eventb.core.label="act1" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyG6QA35Ee-bMZTDvaEJhw|org.eventb.core.action#_wyTukA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.scAction name="new_passworg" org.eventb.core.assignment="dentist ≔ dentist{user ↦ new_password}" org.eventb.core.label="act2" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyG6QA35Ee-bMZTDvaEJhw|org.eventb.core.action#_wyU8sA35Ee-bMZTDvaEJhw"/> - </org.eventb.core.scEvent> - <org.eventb.core.scEvent name="UserContey-" org.eventb.core.accurate="true" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.label="changeAdminPassword" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyWK0A35Ee-bMZTDvaEJhw"> - <org.eventb.core.scGuard name="'" org.eventb.core.label="grd0" org.eventb.core.predicate="user∈dom(admin)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyWK0A35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wyZ1MA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="(" org.eventb.core.label="grd1" org.eventb.core.predicate="password=loggedin(user)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyWK0A35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wybDUA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name=")" org.eventb.core.label="grd2" org.eventb.core.predicate="new_password∈PASSWORD" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyWK0A35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wyc4gA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="*" org.eventb.core.label="grd3" org.eventb.core.predicate="user∈dom(loggedin)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyWK0A35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wyetsA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scParameter name="password" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyWK0A35Ee-bMZTDvaEJhw|org.eventb.core.parameter#_wyYAAA35Ee-bMZTDvaEJhw" org.eventb.core.type="PASSWORD"/> - <org.eventb.core.scParameter name="new_password" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyWK0A35Ee-bMZTDvaEJhw|org.eventb.core.parameter#_wyYnEA35Ee-bMZTDvaEJhw" org.eventb.core.type="PASSWORD"/> - <org.eventb.core.scParameter name="user" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyWK0A35Ee-bMZTDvaEJhw|org.eventb.core.parameter#_wyXY8A35Ee-bMZTDvaEJhw" org.eventb.core.type="USER"/> - <org.eventb.core.scAction name="new_passwore" org.eventb.core.assignment="loggedin ≔ loggedin{user ↦ new_password}" org.eventb.core.label="act0" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyWK0A35Ee-bMZTDvaEJhw|org.eventb.core.action#_wyf70A35Ee-bMZTDvaEJhw"/> - <org.eventb.core.scAction name="new_passworf" org.eventb.core.assignment="registered ≔ registered{user ↦ new_password}" org.eventb.core.label="act1" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyWK0A35Ee-bMZTDvaEJhw|org.eventb.core.action#_wyhJ8A35Ee-bMZTDvaEJhw"/> - <org.eventb.core.scAction name="new_passworg" org.eventb.core.assignment="admin ≔ admin{user ↦ new_password}" org.eventb.core.label="act2" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyWK0A35Ee-bMZTDvaEJhw|org.eventb.core.action#_wyiYEA35Ee-bMZTDvaEJhw"/> - </org.eventb.core.scEvent> - <org.eventb.core.scEvent name="UserContey." org.eventb.core.accurate="true" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.label="AdminRegisterPatientToDentist" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyjmMA35Ee-bMZTDvaEJhw"> - <org.eventb.core.scGuard name="'" org.eventb.core.label="grd0" org.eventb.core.predicate="user∈dom(admin)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyjmMA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wyulUA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="(" org.eventb.core.label="grd1" org.eventb.core.predicate="password=loggedin(user)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyjmMA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wyvzcA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name=")" org.eventb.core.label="grd2" org.eventb.core.predicate="register_user∈dom(patient)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyjmMA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wyxBkA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="*" org.eventb.core.label="grd3" org.eventb.core.predicate="user∈dom(loggedin)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyjmMA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wyyPsA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scParameter name="register_user" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyjmMA35Ee-bMZTDvaEJhw|org.eventb.core.parameter#_wyt-QA35Ee-bMZTDvaEJhw" org.eventb.core.type="USER"/> - <org.eventb.core.scParameter name="password" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyjmMA35Ee-bMZTDvaEJhw|org.eventb.core.parameter#_wytXMA35Ee-bMZTDvaEJhw" org.eventb.core.type="PASSWORD"/> - <org.eventb.core.scParameter name="user" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyjmMA35Ee-bMZTDvaEJhw|org.eventb.core.parameter#_wyq68A35Ee-bMZTDvaEJhw" org.eventb.core.type="USER"/> - <org.eventb.core.scAction name="register_uses" org.eventb.core.assignment="dentist ≔ dentist∪({register_user} ◁ patient)" org.eventb.core.label="act0" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyjmMA35Ee-bMZTDvaEJhw|org.eventb.core.action#_wyzd0A35Ee-bMZTDvaEJhw"/> - <org.eventb.core.scAction name="register_uset" org.eventb.core.assignment="patient ≔ patient ∖ ({register_user} ◁ patient)" org.eventb.core.label="act1" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyjmMA35Ee-bMZTDvaEJhw|org.eventb.core.action#_wy1TAA35Ee-bMZTDvaEJhw"/> - </org.eventb.core.scEvent> - <org.eventb.core.scEvent name="UserContey/" org.eventb.core.accurate="true" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.label="AdminRegisterPatientToAdministrator" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wy16EA35Ee-bMZTDvaEJhw"> - <org.eventb.core.scGuard name="'" org.eventb.core.label="grd0" org.eventb.core.predicate="user∈dom(admin)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wy16EA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wy5kcA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="(" org.eventb.core.label="grd1" org.eventb.core.predicate="password=loggedin(user)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wy16EA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wy6LgA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name=")" org.eventb.core.label="grd2" org.eventb.core.predicate="register_user∈dom(patient)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wy16EA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wy7ZoA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="*" org.eventb.core.label="grd3" org.eventb.core.predicate="user∈dom(loggedin)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wy16EA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wy8nwA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scParameter name="register_user" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wy16EA35Ee-bMZTDvaEJhw|org.eventb.core.parameter#_wy49YA35Ee-bMZTDvaEJhw" org.eventb.core.type="USER"/> - <org.eventb.core.scParameter name="password" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wy16EA35Ee-bMZTDvaEJhw|org.eventb.core.parameter#_wy3vQA35Ee-bMZTDvaEJhw" org.eventb.core.type="PASSWORD"/> - <org.eventb.core.scParameter name="user" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wy16EA35Ee-bMZTDvaEJhw|org.eventb.core.parameter#_wy3IMA35Ee-bMZTDvaEJhw" org.eventb.core.type="USER"/> - <org.eventb.core.scAction name="register_uses" org.eventb.core.assignment="admin ≔ admin∪({register_user} ◁ patient)" org.eventb.core.label="act0" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wy16EA35Ee-bMZTDvaEJhw|org.eventb.core.action#_wzASIA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.scAction name="register_uset" org.eventb.core.assignment="patient ≔ patient ∖ ({register_user} ◁ patient)" org.eventb.core.label="act1" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wy16EA35Ee-bMZTDvaEJhw|org.eventb.core.action#_wzGYwA35Ee-bMZTDvaEJhw"/> - </org.eventb.core.scEvent> - <org.eventb.core.scEvent name="UserContey0" org.eventb.core.accurate="true" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.label="AdminRegisterDentistToAdministrator" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wzMfYA35Ee-bMZTDvaEJhw"> - <org.eventb.core.scGuard name="'" org.eventb.core.label="grd0" org.eventb.core.predicate="user∈dom(admin)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wzMfYA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wzQJwA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="(" org.eventb.core.label="grd1" org.eventb.core.predicate="password=loggedin(user)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wzMfYA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wzQw0A35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name=")" org.eventb.core.label="grd2" org.eventb.core.predicate="register_user∈dom(dentist)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wzMfYA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wzT0IA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scGuard name="*" org.eventb.core.label="grd3" org.eventb.core.predicate="user∈dom(loggedin)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wzMfYA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wzVCQA35Ee-bMZTDvaEJhw" org.eventb.core.theorem="false"/> - <org.eventb.core.scParameter name="register_user" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wzMfYA35Ee-bMZTDvaEJhw|org.eventb.core.parameter#_wzPisA35Ee-bMZTDvaEJhw" org.eventb.core.type="USER"/> - <org.eventb.core.scParameter name="password" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wzMfYA35Ee-bMZTDvaEJhw|org.eventb.core.parameter#_wzO7oA35Ee-bMZTDvaEJhw" org.eventb.core.type="PASSWORD"/> - <org.eventb.core.scParameter name="user" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wzMfYA35Ee-bMZTDvaEJhw|org.eventb.core.parameter#_wzOUkA35Ee-bMZTDvaEJhw" org.eventb.core.type="USER"/> - <org.eventb.core.scAction name="register_uses" org.eventb.core.assignment="admin ≔ admin∪({register_user} ◁ dentist)" org.eventb.core.label="act0" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wzMfYA35Ee-bMZTDvaEJhw|org.eventb.core.action#_wzWQYA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.scAction name="register_uset" org.eventb.core.assignment="dentist ≔ dentist ∖ ({register_user} ◁ dentist)" org.eventb.core.label="act1" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wzMfYA35Ee-bMZTDvaEJhw|org.eventb.core.action#_wzah0A35Ee-bMZTDvaEJhw"/> - </org.eventb.core.scEvent> -</org.eventb.core.scMachineFile> diff --git a/UserManagement/UserMachine.bpo b/UserManagement/UserMachine.bpo deleted file mode 100644 index 975d66e52353c50266bfb38a8e00d98e7fd012cf..0000000000000000000000000000000000000000 --- a/UserManagement/UserMachine.bpo +++ /dev/null @@ -1,548 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<org.eventb.core.poFile org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicateSet name="CTXHYP" org.eventb.core.poStamp="0"> - <org.eventb.core.poIdentifier name="USER" org.eventb.core.type="ℙ(USER)"/> - <org.eventb.core.poIdentifier name="PASSWORD" org.eventb.core.type="ℙ(PASSWORD)"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poPredicateSet name="ABSHYP" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#CTXHYP" org.eventb.core.poStamp="0"> - <org.eventb.core.poIdentifier name="loggedin" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.poIdentifier name="patient" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.poIdentifier name="dentist" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.poIdentifier name="registered" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.poIdentifier name="admin" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poSequent name="INITIALISATION/inv0/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant establishment" org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTALLHYPUserContex~"/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="(∅ ⦂ ℙ(USER×PASSWORD))∈USER ⇸ PASSWORD" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wv7I8A35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wwWmwA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wv7I8A35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#CTXHYP" org.eventb.core.poSelHintSnd="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poSequent#INITIALISATION\/inv0\/INV|org.eventb.core.poPredicateSet#SEQHYP"/> - <org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD0"/> - </org.eventb.core.poSequent> - <org.eventb.core.poSequent name="INITIALISATION/inv1/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant establishment" org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTALLHYPUserContex~"/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="(∅ ⦂ ℙ(USER×PASSWORD))∈USER ⇸ PASSWORD" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wv-MQA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wwWmwA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wv-MQA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#CTXHYP" org.eventb.core.poSelHintSnd="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poSequent#INITIALISATION\/inv1\/INV|org.eventb.core.poPredicateSet#SEQHYP"/> - <org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD1"/> - </org.eventb.core.poSequent> - <org.eventb.core.poSequent name="INITIALISATION/inv2/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant establishment" org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTALLHYPUserContex~"/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="(∅ ⦂ ℙ(USER×PASSWORD))∈USER ⇸ PASSWORD" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wv_aYA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wwWmwA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wv_aYA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#CTXHYP" org.eventb.core.poSelHintSnd="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poSequent#INITIALISATION\/inv2\/INV|org.eventb.core.poPredicateSet#SEQHYP"/> - <org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD2"/> - </org.eventb.core.poSequent> - <org.eventb.core.poSequent name="INITIALISATION/inv6/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant establishment" org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTALLHYPUserContex~"/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="(∅ ⦂ ℙ(USER×PASSWORD))∩(∅ ⦂ ℙ(USER×PASSWORD))∩(∅ ⦂ ℙ(USER×PASSWORD))=(∅ ⦂ ℙ(USER×PASSWORD))" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwOq8A35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wwWmwA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwOq8A35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#CTXHYP" org.eventb.core.poSelHintSnd="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poSequent#INITIALISATION\/inv6\/INV|org.eventb.core.poPredicateSet#SEQHYP"/> - <org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD6"/> - </org.eventb.core.poSequent> - <org.eventb.core.poSequent name="INITIALISATION/inv7/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant establishment" org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTALLHYPUserContex~"/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="(∅ ⦂ ℙ(USER×PASSWORD))=(∅ ⦂ ℙ(USER×PASSWORD))∪(∅ ⦂ ℙ(USER×PASSWORD))∪(∅ ⦂ ℙ(USER×PASSWORD))" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwQgIA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wwWmwA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwQgIA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#CTXHYP" org.eventb.core.poSelHintSnd="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poSequent#INITIALISATION\/inv7\/INV|org.eventb.core.poPredicateSet#SEQHYP"/> - <org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD7"/> - </org.eventb.core.poSequent> - <org.eventb.core.poSequent name="INITIALISATION/inv8/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant establishment" org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTALLHYPUserContex~"/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="(∅ ⦂ ℙ(USER×PASSWORD))⊆(∅ ⦂ ℙ(USER×PASSWORD))" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwVYoA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wwWmwA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwVYoA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#CTXHYP" org.eventb.core.poSelHintSnd="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poSequent#INITIALISATION\/inv8\/INV|org.eventb.core.poPredicateSet#SEQHYP"/> - <org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD8"/> - </org.eventb.core.poSequent> - <org.eventb.core.poPredicateSet name="EVTIDENTUserContex~" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#CTXHYP" org.eventb.core.poStamp="0"> - <org.eventb.core.poIdentifier name="loggedin'" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.poIdentifier name="registered'" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.poIdentifier name="admin'" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.poIdentifier name="patient'" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.poIdentifier name="dentist'" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poPredicateSet name="EVTALLHYPUserContex~" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTIDENTUserContex~" org.eventb.core.poStamp="0"/> - <org.eventb.core.poSequent name="setRootAdmins/inv0/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTALLHYPUserContey'"/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="{root ↦ root_password}∈USER ⇸ PASSWORD" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wv7I8A35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wwfwsA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wv7I8A35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poSequent#setRootAdmins\/inv0\/INV|org.eventb.core.poPredicateSet#SEQHYP"/> - <org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD0"/> - </org.eventb.core.poSequent> - <org.eventb.core.poSequent name="setRootAdmins/inv6/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTALLHYPUserContey'"/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="{root ↦ root_password}∩dentist∩patient=(∅ ⦂ ℙ(USER×PASSWORD))" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwOq8A35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wwfwsA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwOq8A35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poSequent#setRootAdmins\/inv6\/INV|org.eventb.core.poPredicateSet#SEQHYP"/> - <org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD6"/> - </org.eventb.core.poSequent> - <org.eventb.core.poSequent name="setRootAdmins/inv7/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTALLHYPUserContey'"/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="{root ↦ root_password}={root ↦ root_password}∪dentist∪patient" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwQgIA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wwfwsA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwQgIA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poSequent#setRootAdmins\/inv7\/INV|org.eventb.core.poPredicateSet#SEQHYP"/> - <org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD7"/> - </org.eventb.core.poSequent> - <org.eventb.core.poSequent name="setRootAdmins/inv8/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTALLHYPUserContey'"/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="loggedin⊆{root ↦ root_password}" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwVYoA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wwfwsA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwVYoA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poSequent#setRootAdmins\/inv8\/INV|org.eventb.core.poPredicateSet#SEQHYP"/> - <org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD8"/> - </org.eventb.core.poSequent> - <org.eventb.core.poPredicateSet name="EVTIDENTUserContey'" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poStamp="5"> - <org.eventb.core.poIdentifier name="root" org.eventb.core.type="USER"/> - <org.eventb.core.poIdentifier name="registered'" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.poIdentifier name="admin'" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.poIdentifier name="root_password" org.eventb.core.type="PASSWORD"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poPredicateSet name="EVTALLHYPUserContey'" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTIDENTUserContey'" org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicate name="PRD0" org.eventb.core.predicate="root∈USER" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wwfwsA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wwo6oA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD1" org.eventb.core.predicate="root_password∈PASSWORD" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wwfwsA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wwslAA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD2" org.eventb.core.predicate="admin=(∅ ⦂ ℙ(USER×PASSWORD))" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wwfwsA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wwuaMA35Ee-bMZTDvaEJhw"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poSequent name="registerNewPatient/grd3/WD" org.eventb.core.accurate="true" org.eventb.core.poDesc="Well-definedness of Guard" org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTHYPUserContey()"/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="finite(admin)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxFmkA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wxQlsA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxFmkA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wxQlsA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYS" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTHYPUserContey()"/> - </org.eventb.core.poSequent> - <org.eventb.core.poSequent name="registerNewPatient/inv2/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTALLHYPUserContey("/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="patient∪{new_patient ↦ new_patient_password}∈USER ⇸ PASSWORD" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wv_aYA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxFmkA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wv_aYA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poSequent#registerNewPatient\/inv2\/INV|org.eventb.core.poPredicateSet#SEQHYP"/> - <org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD2"/> - </org.eventb.core.poSequent> - <org.eventb.core.poSequent name="registerNewPatient/inv6/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTALLHYPUserContey("/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="admin∩dentist∩(patient∪{new_patient ↦ new_patient_password})=(∅ ⦂ ℙ(USER×PASSWORD))" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwOq8A35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxFmkA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwOq8A35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poSequent#registerNewPatient\/inv6\/INV|org.eventb.core.poPredicateSet#SEQHYP"/> - <org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD6"/> - </org.eventb.core.poSequent> - <org.eventb.core.poSequent name="registerNewPatient/inv7/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTALLHYPUserContey("/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="registered∪{new_patient ↦ new_patient_password}=admin∪dentist∪(patient∪{new_patient ↦ new_patient_password})" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwQgIA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxFmkA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwQgIA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poSequent#registerNewPatient\/inv7\/INV|org.eventb.core.poPredicateSet#SEQHYP"/> - <org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD7"/> - </org.eventb.core.poSequent> - <org.eventb.core.poSequent name="registerNewPatient/inv8/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTALLHYPUserContey("/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="loggedin⊆registered∪{new_patient ↦ new_patient_password}" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwVYoA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxFmkA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwVYoA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poSequent#registerNewPatient\/inv8\/INV|org.eventb.core.poPredicateSet#SEQHYP"/> - <org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD8"/> - </org.eventb.core.poSequent> - <org.eventb.core.poPredicateSet name="EVTIDENTUserContey(" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poStamp="5"> - <org.eventb.core.poIdentifier name="new_patient" org.eventb.core.type="USER"/> - <org.eventb.core.poIdentifier name="registered'" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.poIdentifier name="new_patient_password" org.eventb.core.type="PASSWORD"/> - <org.eventb.core.poIdentifier name="patient'" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poPredicateSet name="EVTHYPUserContey()" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTIDENTUserContey(" org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicate name="PRD0" org.eventb.core.predicate="new_patient∈USER" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxFmkA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wxKfEA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD1" org.eventb.core.predicate="new_patient_password∈PASSWORD" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxFmkA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wxLtMA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD2" org.eventb.core.predicate="new_patient∉dom(registered)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxFmkA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wxNiYA35Ee-bMZTDvaEJhw"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poPredicateSet name="EVTALLHYPUserContey(" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTHYPUserContey()" org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicate name="PRD3" org.eventb.core.predicate="card(admin)>0" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxFmkA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wxQlsA35Ee-bMZTDvaEJhw"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poSequent name="loginUser/grd1/WD" org.eventb.core.accurate="true" org.eventb.core.poDesc="Well-definedness of Guard" org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTHYPUserContey)'"/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="user∈dom(registered)∧registered∈USER ⇸ PASSWORD" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxXTYA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wxkHsA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxXTYA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wxkHsA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYS" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTHYPUserContey)'"/> - </org.eventb.core.poSequent> - <org.eventb.core.poSequent name="loginUser/inv8/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTALLHYPUserContey)"/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="loggedin∪{user ↦ user_password}⊆registered" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwVYoA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxXTYA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwVYoA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poSequent#loginUser\/inv8\/INV|org.eventb.core.poPredicateSet#SEQHYP"/> - <org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD8"/> - </org.eventb.core.poSequent> - <org.eventb.core.poPredicateSet name="EVTIDENTUserContey)" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poStamp="5"> - <org.eventb.core.poIdentifier name="loggedin'" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.poIdentifier name="user" org.eventb.core.type="USER"/> - <org.eventb.core.poIdentifier name="user_password" org.eventb.core.type="PASSWORD"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poPredicateSet name="EVTHYPUserContey)'" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTIDENTUserContey)" org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicate name="PRD0" org.eventb.core.predicate="user∈dom(registered)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxXTYA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wxeoIA35Ee-bMZTDvaEJhw"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poPredicateSet name="EVTALLHYPUserContey)" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTHYPUserContey)'" org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicate name="PRD1" org.eventb.core.predicate="user_password=registered(user)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxXTYA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wxkHsA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD2" org.eventb.core.predicate="user∉dom(loggedin)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxXTYA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wxl84A35Ee-bMZTDvaEJhw"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poSequent name="logoutUser/grd1/WD" org.eventb.core.accurate="true" org.eventb.core.poDesc="Well-definedness of Guard" org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTHYPUserContey*'"/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="user∈dom(loggedin)∧loggedin∈USER ⇸ PASSWORD" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxpAMA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wx0mYA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxpAMA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wx0mYA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYS" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTHYPUserContey*'"/> - </org.eventb.core.poSequent> - <org.eventb.core.poSequent name="logoutUser/inv8/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTALLHYPUserContey*"/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="loggedin ∖ {user ↦ password}⊆registered" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwVYoA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxpAMA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwVYoA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poSequent#logoutUser\/inv8\/INV|org.eventb.core.poPredicateSet#SEQHYP"/> - <org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD8"/> - </org.eventb.core.poSequent> - <org.eventb.core.poPredicateSet name="EVTIDENTUserContey*" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poStamp="5"> - <org.eventb.core.poIdentifier name="loggedin'" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.poIdentifier name="user" org.eventb.core.type="USER"/> - <org.eventb.core.poIdentifier name="password" org.eventb.core.type="PASSWORD"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poPredicateSet name="EVTHYPUserContey*'" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTIDENTUserContey*" org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicate name="PRD0" org.eventb.core.predicate="user∈dom(loggedin)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxpAMA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wxwU8A35Ee-bMZTDvaEJhw"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poPredicateSet name="EVTALLHYPUserContey*" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTHYPUserContey*'" org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicate name="PRD1" org.eventb.core.predicate="password=loggedin(user)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wxpAMA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wx0mYA35Ee-bMZTDvaEJhw"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poSequent name="changePatientPassword/grd1/WD" org.eventb.core.accurate="true" org.eventb.core.poDesc="Well-definedness of Guard" org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTHYPUserContey+'"/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="user∈dom(loggedin)∧loggedin∈USER ⇸ PASSWORD" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wx5e4A35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wx_lgA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wx5e4A35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wx_lgA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYS" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTHYPUserContey+'"/> - </org.eventb.core.poSequent> - <org.eventb.core.poSequent name="changePatientPassword/inv2/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTALLHYPUserContey+"/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="patient{user ↦ new_password}∈USER ⇸ PASSWORD" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wv_aYA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wx5e4A35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wv_aYA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poSequent#changePatientPassword\/inv2\/INV|org.eventb.core.poPredicateSet#SEQHYP"/> - <org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD2"/> - </org.eventb.core.poSequent> - <org.eventb.core.poSequent name="changePatientPassword/inv6/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTALLHYPUserContey+"/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="admin∩dentist∩(patient{user ↦ new_password})=(∅ ⦂ ℙ(USER×PASSWORD))" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwOq8A35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wx5e4A35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwOq8A35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poSequent#changePatientPassword\/inv6\/INV|org.eventb.core.poPredicateSet#SEQHYP"/> - <org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD6"/> - </org.eventb.core.poSequent> - <org.eventb.core.poSequent name="changePatientPassword/inv7/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTALLHYPUserContey+"/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="registered{user ↦ new_password}=admin∪dentist∪(patient{user ↦ new_password})" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwQgIA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wx5e4A35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwQgIA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poSequent#changePatientPassword\/inv7\/INV|org.eventb.core.poPredicateSet#SEQHYP"/> - <org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD7"/> - </org.eventb.core.poSequent> - <org.eventb.core.poSequent name="changePatientPassword/inv8/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTALLHYPUserContey+"/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="loggedin{user ↦ new_password}⊆registered{user ↦ new_password}" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwVYoA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wx5e4A35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwVYoA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poSequent#changePatientPassword\/inv8\/INV|org.eventb.core.poPredicateSet#SEQHYP"/> - <org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD8"/> - </org.eventb.core.poSequent> - <org.eventb.core.poPredicateSet name="EVTIDENTUserContey+" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poStamp="5"> - <org.eventb.core.poIdentifier name="loggedin'" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.poIdentifier name="registered'" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.poIdentifier name="user" org.eventb.core.type="USER"/> - <org.eventb.core.poIdentifier name="patient'" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.poIdentifier name="password" org.eventb.core.type="PASSWORD"/> - <org.eventb.core.poIdentifier name="new_password" org.eventb.core.type="PASSWORD"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poPredicateSet name="EVTHYPUserContey+'" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTIDENTUserContey+" org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicate name="PRD0" org.eventb.core.predicate="user∈dom(patient)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wx5e4A35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wx-XYA35Ee-bMZTDvaEJhw"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poPredicateSet name="EVTALLHYPUserContey+" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTHYPUserContey+'" org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicate name="PRD1" org.eventb.core.predicate="password=loggedin(user)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wx5e4A35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wx_lgA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD2" org.eventb.core.predicate="new_password∈PASSWORD" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wx5e4A35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wyAMkA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD3" org.eventb.core.predicate="user∈dom(loggedin)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wx5e4A35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wyCo0A35Ee-bMZTDvaEJhw"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poSequent name="changeDentistPassword/grd1/WD" org.eventb.core.accurate="true" org.eventb.core.poDesc="Well-definedness of Guard" org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTHYPUserContey,'"/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="user∈dom(loggedin)∧loggedin∈USER ⇸ PASSWORD" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyG6QA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wyO2EA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyG6QA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wyO2EA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYS" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTHYPUserContey,'"/> - </org.eventb.core.poSequent> - <org.eventb.core.poSequent name="changeDentistPassword/inv1/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTALLHYPUserContey,"/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="dentist{user ↦ new_password}∈USER ⇸ PASSWORD" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wv-MQA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyG6QA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wv-MQA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poSequent#changeDentistPassword\/inv1\/INV|org.eventb.core.poPredicateSet#SEQHYP"/> - <org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD1"/> - </org.eventb.core.poSequent> - <org.eventb.core.poSequent name="changeDentistPassword/inv6/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTALLHYPUserContey,"/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="admin∩(dentist{user ↦ new_password})∩patient=(∅ ⦂ ℙ(USER×PASSWORD))" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwOq8A35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyG6QA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwOq8A35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poSequent#changeDentistPassword\/inv6\/INV|org.eventb.core.poPredicateSet#SEQHYP"/> - <org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD6"/> - </org.eventb.core.poSequent> - <org.eventb.core.poSequent name="changeDentistPassword/inv7/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTALLHYPUserContey,"/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="registered{user ↦ new_password}=admin∪(dentist{user ↦ new_password})∪patient" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwQgIA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyG6QA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwQgIA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poSequent#changeDentistPassword\/inv7\/INV|org.eventb.core.poPredicateSet#SEQHYP"/> - <org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD7"/> - </org.eventb.core.poSequent> - <org.eventb.core.poSequent name="changeDentistPassword/inv8/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTALLHYPUserContey,"/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="loggedin{user ↦ new_password}⊆registered{user ↦ new_password}" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwVYoA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyG6QA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwVYoA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poSequent#changeDentistPassword\/inv8\/INV|org.eventb.core.poPredicateSet#SEQHYP"/> - <org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD8"/> - </org.eventb.core.poSequent> - <org.eventb.core.poPredicateSet name="EVTIDENTUserContey," org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poStamp="5"> - <org.eventb.core.poIdentifier name="loggedin'" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.poIdentifier name="registered'" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.poIdentifier name="user" org.eventb.core.type="USER"/> - <org.eventb.core.poIdentifier name="password" org.eventb.core.type="PASSWORD"/> - <org.eventb.core.poIdentifier name="dentist'" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.poIdentifier name="new_password" org.eventb.core.type="PASSWORD"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poPredicateSet name="EVTHYPUserContey,'" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTIDENTUserContey," org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicate name="PRD0" org.eventb.core.predicate="user∈dom(dentist)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyG6QA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wyJ9kA35Ee-bMZTDvaEJhw"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poPredicateSet name="EVTALLHYPUserContey," org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTHYPUserContey,'" org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicate name="PRD1" org.eventb.core.predicate="password=loggedin(user)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyG6QA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wyO2EA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD2" org.eventb.core.predicate="new_password∈PASSWORD" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyG6QA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wyQEMA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD3" org.eventb.core.predicate="user∈dom(loggedin)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyG6QA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wyR5YA35Ee-bMZTDvaEJhw"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poSequent name="changeAdminPassword/grd1/WD" org.eventb.core.accurate="true" org.eventb.core.poDesc="Well-definedness of Guard" org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTHYPUserContey-'"/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="user∈dom(loggedin)∧loggedin∈USER ⇸ PASSWORD" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyWK0A35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wybDUA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyWK0A35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wybDUA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYS" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTHYPUserContey-'"/> - </org.eventb.core.poSequent> - <org.eventb.core.poSequent name="changeAdminPassword/inv0/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTALLHYPUserContey-"/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="admin{user ↦ new_password}∈USER ⇸ PASSWORD" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wv7I8A35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyWK0A35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wv7I8A35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poSequent#changeAdminPassword\/inv0\/INV|org.eventb.core.poPredicateSet#SEQHYP"/> - <org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD0"/> - </org.eventb.core.poSequent> - <org.eventb.core.poSequent name="changeAdminPassword/inv6/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTALLHYPUserContey-"/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="(admin{user ↦ new_password})∩dentist∩patient=(∅ ⦂ ℙ(USER×PASSWORD))" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwOq8A35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyWK0A35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwOq8A35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poSequent#changeAdminPassword\/inv6\/INV|org.eventb.core.poPredicateSet#SEQHYP"/> - <org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD6"/> - </org.eventb.core.poSequent> - <org.eventb.core.poSequent name="changeAdminPassword/inv7/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTALLHYPUserContey-"/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="registered{user ↦ new_password}=(admin{user ↦ new_password})∪dentist∪patient" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwQgIA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyWK0A35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwQgIA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poSequent#changeAdminPassword\/inv7\/INV|org.eventb.core.poPredicateSet#SEQHYP"/> - <org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD7"/> - </org.eventb.core.poSequent> - <org.eventb.core.poSequent name="changeAdminPassword/inv8/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTALLHYPUserContey-"/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="loggedin{user ↦ new_password}⊆registered{user ↦ new_password}" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwVYoA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyWK0A35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwVYoA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poSequent#changeAdminPassword\/inv8\/INV|org.eventb.core.poPredicateSet#SEQHYP"/> - <org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD8"/> - </org.eventb.core.poSequent> - <org.eventb.core.poPredicateSet name="EVTIDENTUserContey-" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poStamp="5"> - <org.eventb.core.poIdentifier name="loggedin'" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.poIdentifier name="registered'" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.poIdentifier name="user" org.eventb.core.type="USER"/> - <org.eventb.core.poIdentifier name="admin'" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.poIdentifier name="password" org.eventb.core.type="PASSWORD"/> - <org.eventb.core.poIdentifier name="new_password" org.eventb.core.type="PASSWORD"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poPredicateSet name="EVTHYPUserContey-'" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTIDENTUserContey-" org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicate name="PRD0" org.eventb.core.predicate="user∈dom(admin)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyWK0A35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wyZ1MA35Ee-bMZTDvaEJhw"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poPredicateSet name="EVTALLHYPUserContey-" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTHYPUserContey-'" org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicate name="PRD1" org.eventb.core.predicate="password=loggedin(user)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyWK0A35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wybDUA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD2" org.eventb.core.predicate="new_password∈PASSWORD" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyWK0A35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wyc4gA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD3" org.eventb.core.predicate="user∈dom(loggedin)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyWK0A35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wyetsA35Ee-bMZTDvaEJhw"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poSequent name="AdminRegisterPatientToDentist/grd1/WD" org.eventb.core.accurate="true" org.eventb.core.poDesc="Well-definedness of Guard" org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTHYPUserContey.'"/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="user∈dom(loggedin)∧loggedin∈USER ⇸ PASSWORD" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyjmMA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wyvzcA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyjmMA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wyvzcA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYS" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTHYPUserContey.'"/> - </org.eventb.core.poSequent> - <org.eventb.core.poSequent name="AdminRegisterPatientToDentist/inv1/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTALLHYPUserContey."/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="dentist∪({register_user} ◁ patient)∈USER ⇸ PASSWORD" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wv-MQA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyjmMA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wv-MQA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poSequent#AdminRegisterPatientToDentist\/inv1\/INV|org.eventb.core.poPredicateSet#SEQHYP"/> - <org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD1"/> - </org.eventb.core.poSequent> - <org.eventb.core.poSequent name="AdminRegisterPatientToDentist/inv2/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTALLHYPUserContey."/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="patient ∖ ({register_user} ◁ patient)∈USER ⇸ PASSWORD" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wv_aYA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyjmMA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wv_aYA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poSequent#AdminRegisterPatientToDentist\/inv2\/INV|org.eventb.core.poPredicateSet#SEQHYP"/> - <org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD2"/> - </org.eventb.core.poSequent> - <org.eventb.core.poSequent name="AdminRegisterPatientToDentist/inv6/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTALLHYPUserContey."/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="admin∩(dentist∪({register_user} ◁ patient))∩(patient ∖ ({register_user} ◁ patient))=(∅ ⦂ ℙ(USER×PASSWORD))" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwOq8A35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyjmMA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwOq8A35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poSequent#AdminRegisterPatientToDentist\/inv6\/INV|org.eventb.core.poPredicateSet#SEQHYP"/> - <org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD6"/> - </org.eventb.core.poSequent> - <org.eventb.core.poSequent name="AdminRegisterPatientToDentist/inv7/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTALLHYPUserContey."/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="registered=admin∪(dentist∪({register_user} ◁ patient))∪(patient ∖ ({register_user} ◁ patient))" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwQgIA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyjmMA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwQgIA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poSequent#AdminRegisterPatientToDentist\/inv7\/INV|org.eventb.core.poPredicateSet#SEQHYP"/> - <org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD7"/> - </org.eventb.core.poSequent> - <org.eventb.core.poPredicateSet name="EVTIDENTUserContey." org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poStamp="5"> - <org.eventb.core.poIdentifier name="user" org.eventb.core.type="USER"/> - <org.eventb.core.poIdentifier name="patient'" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.poIdentifier name="password" org.eventb.core.type="PASSWORD"/> - <org.eventb.core.poIdentifier name="dentist'" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.poIdentifier name="register_user" org.eventb.core.type="USER"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poPredicateSet name="EVTHYPUserContey.'" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTIDENTUserContey." org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicate name="PRD0" org.eventb.core.predicate="user∈dom(admin)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyjmMA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wyulUA35Ee-bMZTDvaEJhw"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poPredicateSet name="EVTALLHYPUserContey." org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTHYPUserContey.'" org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicate name="PRD1" org.eventb.core.predicate="password=loggedin(user)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyjmMA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wyvzcA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD2" org.eventb.core.predicate="register_user∈dom(patient)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyjmMA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wyxBkA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD3" org.eventb.core.predicate="user∈dom(loggedin)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wyjmMA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wyyPsA35Ee-bMZTDvaEJhw"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poSequent name="AdminRegisterPatientToAdministrator/grd1/WD" org.eventb.core.accurate="true" org.eventb.core.poDesc="Well-definedness of Guard" org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTHYPUserContey\/'"/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="user∈dom(loggedin)∧loggedin∈USER ⇸ PASSWORD" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wy16EA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wy6LgA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wy16EA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wy6LgA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYS" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTHYPUserContey\/'"/> - </org.eventb.core.poSequent> - <org.eventb.core.poSequent name="AdminRegisterPatientToAdministrator/inv0/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTALLHYPUserContey\/"/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="admin∪({register_user} ◁ patient)∈USER ⇸ PASSWORD" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wv7I8A35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wy16EA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wv7I8A35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poSequent#AdminRegisterPatientToAdministrator\/inv0\/INV|org.eventb.core.poPredicateSet#SEQHYP"/> - <org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD0"/> - </org.eventb.core.poSequent> - <org.eventb.core.poSequent name="AdminRegisterPatientToAdministrator/inv2/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTALLHYPUserContey\/"/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="patient ∖ ({register_user} ◁ patient)∈USER ⇸ PASSWORD" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wv_aYA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wy16EA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wv_aYA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poSequent#AdminRegisterPatientToAdministrator\/inv2\/INV|org.eventb.core.poPredicateSet#SEQHYP"/> - <org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD2"/> - </org.eventb.core.poSequent> - <org.eventb.core.poSequent name="AdminRegisterPatientToAdministrator/inv6/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTALLHYPUserContey\/"/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="(admin∪({register_user} ◁ patient))∩dentist∩(patient ∖ ({register_user} ◁ patient))=(∅ ⦂ ℙ(USER×PASSWORD))" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwOq8A35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wy16EA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwOq8A35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poSequent#AdminRegisterPatientToAdministrator\/inv6\/INV|org.eventb.core.poPredicateSet#SEQHYP"/> - <org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD6"/> - </org.eventb.core.poSequent> - <org.eventb.core.poSequent name="AdminRegisterPatientToAdministrator/inv7/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTALLHYPUserContey\/"/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="registered=(admin∪({register_user} ◁ patient))∪dentist∪(patient ∖ ({register_user} ◁ patient))" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwQgIA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wy16EA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwQgIA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poSequent#AdminRegisterPatientToAdministrator\/inv7\/INV|org.eventb.core.poPredicateSet#SEQHYP"/> - <org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD7"/> - </org.eventb.core.poSequent> - <org.eventb.core.poPredicateSet name="EVTIDENTUserContey/" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poStamp="5"> - <org.eventb.core.poIdentifier name="user" org.eventb.core.type="USER"/> - <org.eventb.core.poIdentifier name="admin'" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.poIdentifier name="patient'" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.poIdentifier name="password" org.eventb.core.type="PASSWORD"/> - <org.eventb.core.poIdentifier name="register_user" org.eventb.core.type="USER"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poPredicateSet name="EVTHYPUserContey/'" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTIDENTUserContey\/" org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicate name="PRD0" org.eventb.core.predicate="user∈dom(admin)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wy16EA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wy5kcA35Ee-bMZTDvaEJhw"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poPredicateSet name="EVTALLHYPUserContey/" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTHYPUserContey\/'" org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicate name="PRD1" org.eventb.core.predicate="password=loggedin(user)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wy16EA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wy6LgA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD2" org.eventb.core.predicate="register_user∈dom(patient)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wy16EA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wy7ZoA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD3" org.eventb.core.predicate="user∈dom(loggedin)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wy16EA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wy8nwA35Ee-bMZTDvaEJhw"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poSequent name="AdminRegisterDentistToAdministrator/grd1/WD" org.eventb.core.accurate="true" org.eventb.core.poDesc="Well-definedness of Guard" org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTHYPUserContey0'"/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="user∈dom(loggedin)∧loggedin∈USER ⇸ PASSWORD" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wzMfYA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wzQw0A35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wzMfYA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wzQw0A35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYS" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTHYPUserContey0'"/> - </org.eventb.core.poSequent> - <org.eventb.core.poSequent name="AdminRegisterDentistToAdministrator/inv0/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTALLHYPUserContey0"/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="admin∪({register_user} ◁ dentist)∈USER ⇸ PASSWORD" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wv7I8A35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wzMfYA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wv7I8A35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poSequent#AdminRegisterDentistToAdministrator\/inv0\/INV|org.eventb.core.poPredicateSet#SEQHYP"/> - <org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD0"/> - </org.eventb.core.poSequent> - <org.eventb.core.poSequent name="AdminRegisterDentistToAdministrator/inv1/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTALLHYPUserContey0"/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="dentist ∖ ({register_user} ◁ dentist)∈USER ⇸ PASSWORD" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wv-MQA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wzMfYA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wv-MQA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poSequent#AdminRegisterDentistToAdministrator\/inv1\/INV|org.eventb.core.poPredicateSet#SEQHYP"/> - <org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD1"/> - </org.eventb.core.poSequent> - <org.eventb.core.poSequent name="AdminRegisterDentistToAdministrator/inv6/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTALLHYPUserContey0"/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="(admin∪({register_user} ◁ dentist))∩(dentist ∖ ({register_user} ◁ dentist))∩patient=(∅ ⦂ ℙ(USER×PASSWORD))" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwOq8A35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wzMfYA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwOq8A35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poSequent#AdminRegisterDentistToAdministrator\/inv6\/INV|org.eventb.core.poPredicateSet#SEQHYP"/> - <org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD6"/> - </org.eventb.core.poSequent> - <org.eventb.core.poSequent name="AdminRegisterDentistToAdministrator/inv7/INV" org.eventb.core.accurate="true" org.eventb.core.poDesc="Invariant preservation" org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicateSet name="SEQHYP" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTALLHYPUserContey0"/> - <org.eventb.core.poPredicate name="SEQHYQ" org.eventb.core.predicate="registered=(admin∪({register_user} ◁ dentist))∪(dentist ∖ ({register_user} ◁ dentist))∪patient" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwQgIA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYR" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wzMfYA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSource name="SEQHYS" org.eventb.core.poRole="DEFAULT" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwQgIA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poSelHint name="SEQHYT" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poSelHintSnd="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poSequent#AdminRegisterDentistToAdministrator\/inv7\/INV|org.eventb.core.poPredicateSet#SEQHYP"/> - <org.eventb.core.poSelHint name="SEQHYU" org.eventb.core.poSelHintFst="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP|org.eventb.core.poPredicate#PRD7"/> - </org.eventb.core.poSequent> - <org.eventb.core.poPredicateSet name="EVTIDENTUserContey0" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ALLHYP" org.eventb.core.poStamp="5"> - <org.eventb.core.poIdentifier name="user" org.eventb.core.type="USER"/> - <org.eventb.core.poIdentifier name="admin'" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.poIdentifier name="password" org.eventb.core.type="PASSWORD"/> - <org.eventb.core.poIdentifier name="dentist'" org.eventb.core.type="ℙ(USER×PASSWORD)"/> - <org.eventb.core.poIdentifier name="register_user" org.eventb.core.type="USER"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poPredicateSet name="EVTHYPUserContey0'" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTIDENTUserContey0" org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicate name="PRD0" org.eventb.core.predicate="user∈dom(admin)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wzMfYA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wzQJwA35Ee-bMZTDvaEJhw"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poPredicateSet name="EVTALLHYPUserContey0" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#EVTHYPUserContey0'" org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicate name="PRD1" org.eventb.core.predicate="password=loggedin(user)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wzMfYA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wzQw0A35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD2" org.eventb.core.predicate="register_user∈dom(dentist)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wzMfYA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wzT0IA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD3" org.eventb.core.predicate="user∈dom(loggedin)" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.event#_wzMfYA35Ee-bMZTDvaEJhw|org.eventb.core.guard#_wzVCQA35Ee-bMZTDvaEJhw"/> - </org.eventb.core.poPredicateSet> - <org.eventb.core.poPredicateSet name="ALLHYP" org.eventb.core.parentSet="/UserManagement/UserMachine.bpo|org.eventb.core.poFile#UserMachine|org.eventb.core.poPredicateSet#ABSHYP" org.eventb.core.poStamp="5"> - <org.eventb.core.poPredicate name="PRD0" org.eventb.core.predicate="admin∈USER ⇸ PASSWORD" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wv7I8A35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD1" org.eventb.core.predicate="dentist∈USER ⇸ PASSWORD" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wv-MQA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD2" org.eventb.core.predicate="patient∈USER ⇸ PASSWORD" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wv_aYA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD3" org.eventb.core.predicate="dom(admin)⊆USER" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwB2oA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD4" org.eventb.core.predicate="dom(dentist)⊆USER" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwJLYA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD5" org.eventb.core.predicate="dom(patient)⊆USER" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwMOsA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD6" org.eventb.core.predicate="admin∩dentist∩patient=(∅ ⦂ ℙ(USER×PASSWORD))" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwOq8A35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD7" org.eventb.core.predicate="registered=admin∪dentist∪patient" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwQgIA35Ee-bMZTDvaEJhw"/> - <org.eventb.core.poPredicate name="PRD8" org.eventb.core.predicate="loggedin⊆registered" org.eventb.core.source="/UserManagement/UserMachine.bum|org.eventb.core.machineFile#UserMachine|org.eventb.core.invariant#_wwVYoA35Ee-bMZTDvaEJhw"/> - </org.eventb.core.poPredicateSet> -</org.eventb.core.poFile> diff --git a/UserManagement/UserMachine.bps b/UserManagement/UserMachine.bps deleted file mode 100644 index 058a1b4124067b2174019d64b40323741631997e..0000000000000000000000000000000000000000 --- a/UserManagement/UserMachine.bps +++ /dev/null @@ -1,52 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<org.eventb.core.psFile> - <org.eventb.core.psStatus name="INITIALISATION/inv0/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="5" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="INITIALISATION/inv1/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="5" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="INITIALISATION/inv2/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="5" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="INITIALISATION/inv6/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="5" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="INITIALISATION/inv7/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="5" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="INITIALISATION/inv8/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="5" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="setRootAdmins/inv0/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="5" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="setRootAdmins/inv6/INV" org.eventb.core.confidence="0" org.eventb.core.poStamp="5" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="setRootAdmins/inv7/INV" org.eventb.core.confidence="0" org.eventb.core.poStamp="5" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="setRootAdmins/inv8/INV" org.eventb.core.confidence="0" org.eventb.core.poStamp="5" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="registerNewPatient/grd3/WD" org.eventb.core.confidence="1000" org.eventb.core.poStamp="5" org.eventb.core.psBroken="true" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="registerNewPatient/inv2/INV" org.eventb.core.confidence="0" org.eventb.core.poStamp="5" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="registerNewPatient/inv6/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="5" org.eventb.core.psBroken="true" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="registerNewPatient/inv7/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="5" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="registerNewPatient/inv8/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="5" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="loginUser/grd1/WD" org.eventb.core.confidence="0" org.eventb.core.poStamp="5" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="loginUser/inv8/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="5" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="logoutUser/grd1/WD" org.eventb.core.confidence="0" org.eventb.core.poStamp="5" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="logoutUser/inv8/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="5" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="changePatientPassword/grd1/WD" org.eventb.core.confidence="0" org.eventb.core.poStamp="5" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="changePatientPassword/inv2/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="5" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="changePatientPassword/inv6/INV" org.eventb.core.confidence="0" org.eventb.core.poStamp="5" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="changePatientPassword/inv7/INV" org.eventb.core.confidence="0" org.eventb.core.poStamp="5" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="changePatientPassword/inv8/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="5" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="changeDentistPassword/grd1/WD" org.eventb.core.confidence="0" org.eventb.core.poStamp="5" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="changeDentistPassword/inv1/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="5" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="changeDentistPassword/inv6/INV" org.eventb.core.confidence="0" org.eventb.core.poStamp="5" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="changeDentistPassword/inv7/INV" org.eventb.core.confidence="0" org.eventb.core.poStamp="5" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="changeDentistPassword/inv8/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="5" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="changeAdminPassword/grd1/WD" org.eventb.core.confidence="0" org.eventb.core.poStamp="5" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="changeAdminPassword/inv0/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="5" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="changeAdminPassword/inv6/INV" org.eventb.core.confidence="0" org.eventb.core.poStamp="5" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="changeAdminPassword/inv7/INV" org.eventb.core.confidence="0" org.eventb.core.poStamp="5" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="changeAdminPassword/inv8/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="5" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="AdminRegisterPatientToDentist/grd1/WD" org.eventb.core.confidence="0" org.eventb.core.poStamp="5" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="AdminRegisterPatientToDentist/inv1/INV" org.eventb.core.confidence="0" org.eventb.core.poStamp="5" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="AdminRegisterPatientToDentist/inv2/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="5" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="AdminRegisterPatientToDentist/inv6/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="5" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="AdminRegisterPatientToDentist/inv7/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="5" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="AdminRegisterPatientToAdministrator/grd1/WD" org.eventb.core.confidence="0" org.eventb.core.poStamp="5" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="AdminRegisterPatientToAdministrator/inv0/INV" org.eventb.core.confidence="0" org.eventb.core.poStamp="5" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="AdminRegisterPatientToAdministrator/inv2/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="5" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="AdminRegisterPatientToAdministrator/inv6/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="5" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="AdminRegisterPatientToAdministrator/inv7/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="5" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="AdminRegisterDentistToAdministrator/grd1/WD" org.eventb.core.confidence="0" org.eventb.core.poStamp="5" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="AdminRegisterDentistToAdministrator/inv0/INV" org.eventb.core.confidence="0" org.eventb.core.poStamp="5" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="AdminRegisterDentistToAdministrator/inv1/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="5" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="AdminRegisterDentistToAdministrator/inv6/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="5" org.eventb.core.psManual="false"/> - <org.eventb.core.psStatus name="AdminRegisterDentistToAdministrator/inv7/INV" org.eventb.core.confidence="1000" org.eventb.core.poStamp="5" org.eventb.core.psManual="false"/> -</org.eventb.core.psFile> diff --git a/UserManagement/UserMachine.bum b/UserManagement/UserMachine.bum index 9c87795ecc29da3743290a1131697c7abb14fd7a..3b9c0773ab9a9b81e1eec89e83ca90f4ae45c625 100644 --- a/UserManagement/UserMachine.bum +++ b/UserManagement/UserMachine.bum @@ -1,128 +1,128 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> <org.eventb.core.machineFile org.eventb.core.configuration="org.eventb.core.fwd;ac.soton.xeventb.xmachine.base" org.eventb.core.generated="false" version="5"> - <org.eventb.core.seesContext name="_wvz0MA35Ee-bMZTDvaEJhw" org.eventb.core.target="UserContext"/> - <org.eventb.core.variable name="_wv2QcA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="admin"/> - <org.eventb.core.variable name="_wv3ekA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="dentist"/> - <org.eventb.core.variable name="_wv4ssA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="patient"/> - <org.eventb.core.variable name="_wv5TwA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="loggedin"/> - <org.eventb.core.variable name="_wv6h4A35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="registered"/> - <org.eventb.core.invariant name="_wv7I8A35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="inv0" org.eventb.core.predicate="admin ∈ USER ⇸ PASSWORD"/> - <org.eventb.core.invariant name="_wv-MQA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="inv1" org.eventb.core.predicate="dentist ∈ USER ⇸ PASSWORD"/> - <org.eventb.core.invariant name="_wv_aYA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="inv2" org.eventb.core.predicate="patient ∈ USER ⇸ PASSWORD"/> - <org.eventb.core.invariant name="_wwB2oA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="inv3" org.eventb.core.predicate="dom(admin) ⊆ USER"/> - <org.eventb.core.invariant name="_wwJLYA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="inv4" org.eventb.core.predicate="dom(dentist) ⊆ USER"/> - <org.eventb.core.invariant name="_wwMOsA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="inv5" org.eventb.core.predicate="dom(patient) ⊆ USER"/> - <org.eventb.core.invariant name="_wwOq8A35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="inv6" org.eventb.core.predicate="admin ∩ dentist ∩ patient = ∅"/> - <org.eventb.core.invariant name="_wwQgIA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="inv7" org.eventb.core.predicate="registered = admin ∪ dentist ∪ patient"/> - <org.eventb.core.invariant name="_wwVYoA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="inv8" org.eventb.core.predicate="loggedin ⊆ registered"/> - <org.eventb.core.event name="_wwWmwA35Ee-bMZTDvaEJhw" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.generated="false" org.eventb.core.label="INITIALISATION"> - <org.eventb.core.action name="_wwYb8A35Ee-bMZTDvaEJhw" org.eventb.core.assignment="admin ≔ ∅" org.eventb.core.generated="false" org.eventb.core.label="act0"/> - <org.eventb.core.action name="_wwaRIA35Ee-bMZTDvaEJhw" org.eventb.core.assignment="dentist ≔ ∅" org.eventb.core.generated="false" org.eventb.core.label="act1"/> - <org.eventb.core.action name="_wwctYA35Ee-bMZTDvaEJhw" org.eventb.core.assignment="patient ≔ ∅" org.eventb.core.generated="false" org.eventb.core.label="act2"/> - <org.eventb.core.action name="_wwd7gA35Ee-bMZTDvaEJhw" org.eventb.core.assignment="loggedin ≔ ∅" org.eventb.core.generated="false" org.eventb.core.label="act3"/> - <org.eventb.core.action name="_wwfJoA35Ee-bMZTDvaEJhw" org.eventb.core.assignment="registered ≔ ∅" org.eventb.core.generated="false" org.eventb.core.label="act4"/> + <org.eventb.core.seesContext name="_OcWjgA4kEe-1OOl4iWIhfA" org.eventb.core.target="UserContext"/> + <org.eventb.core.variable name="_OcXKkA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="admin"/> + <org.eventb.core.variable name="_OcYYsA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="dentist"/> + <org.eventb.core.variable name="_OcY_wA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="patient"/> + <org.eventb.core.variable name="_OcY_wQ4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="loggedin"/> + <org.eventb.core.variable name="_OcZm0A4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="registered"/> + <org.eventb.core.invariant name="_OcaN4A4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="inv0" org.eventb.core.predicate="admin ∈ USER ⇸ PASSWORD"/> + <org.eventb.core.invariant name="_OccDEA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="inv1" org.eventb.core.predicate="dentist ∈ USER ⇸ PASSWORD"/> + <org.eventb.core.invariant name="_OccqIA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="inv2" org.eventb.core.predicate="patient ∈ USER ⇸ PASSWORD"/> + <org.eventb.core.invariant name="_OcdRMA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="inv3" org.eventb.core.predicate="dom(admin) ⊆ USER"/> + <org.eventb.core.invariant name="_OcdRMQ4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="inv4" org.eventb.core.predicate="dom(dentist) ⊆ USER"/> + <org.eventb.core.invariant name="_Ocd4QA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="inv5" org.eventb.core.predicate="dom(patient) ⊆ USER"/> + <org.eventb.core.invariant name="_OcefUA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="inv6" org.eventb.core.predicate="admin ∩ dentist ∩ patient = ∅"/> + <org.eventb.core.invariant name="_OcfGYA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="inv7" org.eventb.core.predicate="registered = admin ∪ dentist ∪ patient"/> + <org.eventb.core.invariant name="_OcftcA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="inv8" org.eventb.core.predicate="loggedin ⊆ registered"/> + <org.eventb.core.event name="_OcgUgA4kEe-1OOl4iWIhfA" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.generated="false" org.eventb.core.label="INITIALISATION"> + <org.eventb.core.action name="_OcjX0A4kEe-1OOl4iWIhfA" org.eventb.core.assignment="admin ≔ ∅" org.eventb.core.generated="false" org.eventb.core.label="act0"/> + <org.eventb.core.action name="_OcjX0Q4kEe-1OOl4iWIhfA" org.eventb.core.assignment="dentist ≔ ∅" org.eventb.core.generated="false" org.eventb.core.label="act1"/> + <org.eventb.core.action name="_Ocj-4A4kEe-1OOl4iWIhfA" org.eventb.core.assignment="patient ≔ ∅" org.eventb.core.generated="false" org.eventb.core.label="act2"/> + <org.eventb.core.action name="_Ocj-4Q4kEe-1OOl4iWIhfA" org.eventb.core.assignment="loggedin ≔ ∅" org.eventb.core.generated="false" org.eventb.core.label="act3"/> + <org.eventb.core.action name="_Ocj-4g4kEe-1OOl4iWIhfA" org.eventb.core.assignment="registered ≔ ∅" org.eventb.core.generated="false" org.eventb.core.label="act4"/> </org.eventb.core.event> - <org.eventb.core.event name="_wwfwsA35Ee-bMZTDvaEJhw" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.generated="false" org.eventb.core.label="setRootAdmins"> - <org.eventb.core.parameter name="_wwhl4A35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="root"/> - <org.eventb.core.parameter name="_wwnFcA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="root_password"/> - <org.eventb.core.guard name="_wwo6oA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd0" org.eventb.core.predicate="root ∈ USER"/> - <org.eventb.core.guard name="_wwslAA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd1" org.eventb.core.predicate="root_password ∈ PASSWORD"/> - <org.eventb.core.guard name="_wwuaMA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd2" org.eventb.core.predicate="admin = ∅"/> - <org.eventb.core.action name="_www2cA35Ee-bMZTDvaEJhw" org.eventb.core.assignment="admin ≔ {root ↦ root_password}" org.eventb.core.generated="false" org.eventb.core.label="act0"/> - <org.eventb.core.action name="_ww-R0A35Ee-bMZTDvaEJhw" org.eventb.core.assignment="registered ≔ {root ↦ root_password}" org.eventb.core.generated="false" org.eventb.core.label="act1"/> + <org.eventb.core.event name="_Ocj-4w4kEe-1OOl4iWIhfA" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.generated="false" org.eventb.core.label="setRootAdmins"> + <org.eventb.core.parameter name="_Ockl8A4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="root"/> + <org.eventb.core.parameter name="_Ockl8Q4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="root_password"/> + <org.eventb.core.guard name="_Ockl8g4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd0" org.eventb.core.predicate="root ∈ USER"/> + <org.eventb.core.guard name="_OclNAA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd1" org.eventb.core.predicate="root_password ∈ PASSWORD"/> + <org.eventb.core.guard name="_Ocl0EA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd2" org.eventb.core.predicate="admin = ∅"/> + <org.eventb.core.action name="_Ocl0EQ4kEe-1OOl4iWIhfA" org.eventb.core.assignment="admin ≔ {root ↦ root_password}" org.eventb.core.generated="false" org.eventb.core.label="act0"/> + <org.eventb.core.action name="_Ocl0Eg4kEe-1OOl4iWIhfA" org.eventb.core.assignment="registered ≔ {root ↦ root_password}" org.eventb.core.generated="false" org.eventb.core.label="act1"/> </org.eventb.core.event> - <org.eventb.core.event name="_wxFmkA35Ee-bMZTDvaEJhw" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.generated="false" org.eventb.core.label="registerNewPatient"> - <org.eventb.core.parameter name="_wxIp4A35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="new_patient"/> - <org.eventb.core.parameter name="_wxJQ8A35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="new_patient_password"/> - <org.eventb.core.guard name="_wxKfEA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd0" org.eventb.core.predicate="new_patient ∈ USER"/> - <org.eventb.core.guard name="_wxLtMA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd1" org.eventb.core.predicate="new_patient_password ∈ PASSWORD"/> - <org.eventb.core.guard name="_wxNiYA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd2" org.eventb.core.predicate="new_patient ∉ dom(registered)"/> - <org.eventb.core.guard name="_wxQlsA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd3" org.eventb.core.predicate="card(admin) > 0"/> - <org.eventb.core.action name="_wxTpAA35Ee-bMZTDvaEJhw" org.eventb.core.assignment="patient ≔ patient ∪ {new_patient ↦ new_patient_password}" org.eventb.core.generated="false" org.eventb.core.label="act1"/> - <org.eventb.core.action name="_wxVeMA35Ee-bMZTDvaEJhw" org.eventb.core.assignment="registered ≔ registered ∪ {new_patient ↦ new_patient_password}" org.eventb.core.generated="false" org.eventb.core.label="act2"/> + <org.eventb.core.event name="_Ocl0Ew4kEe-1OOl4iWIhfA" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.generated="false" org.eventb.core.label="registerNewPatient"> + <org.eventb.core.parameter name="_OcmbIA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="new_patient"/> + <org.eventb.core.parameter name="_OcmbIQ4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="new_patient_password"/> + <org.eventb.core.guard name="_OcnCMA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd0" org.eventb.core.predicate="new_patient ∈ USER"/> + <org.eventb.core.guard name="_OcnCMQ4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd1" org.eventb.core.predicate="new_patient_password ∈ PASSWORD"/> + <org.eventb.core.guard name="_OcnCMg4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd2" org.eventb.core.predicate="new_patient ∉ dom(registered)"/> + <org.eventb.core.guard name="_OcnCMw4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd3" org.eventb.core.predicate="card(admin) > 0"/> + <org.eventb.core.action name="_OcnpQA4kEe-1OOl4iWIhfA" org.eventb.core.assignment="patient ≔ patient ∪ {new_patient ↦ new_patient_password}" org.eventb.core.generated="false" org.eventb.core.label="act1"/> + <org.eventb.core.action name="_OcnpQQ4kEe-1OOl4iWIhfA" org.eventb.core.assignment="registered ≔ registered ∪ {new_patient ↦ new_patient_password}" org.eventb.core.generated="false" org.eventb.core.label="act2"/> </org.eventb.core.event> - <org.eventb.core.event name="_wxXTYA35Ee-bMZTDvaEJhw" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.generated="false" org.eventb.core.label="loginUser"> - <org.eventb.core.parameter name="_wxaWsA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="user"/> - <org.eventb.core.parameter name="_wxdaAA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="user_password"/> - <org.eventb.core.guard name="_wxeoIA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd0" org.eventb.core.predicate="user ∈ dom(registered)"/> - <org.eventb.core.guard name="_wxkHsA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd1" org.eventb.core.predicate="user_password = registered(user)"/> - <org.eventb.core.guard name="_wxl84A35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd2" org.eventb.core.predicate="user ∉ dom(loggedin)"/> - <org.eventb.core.action name="_wxnyEA35Ee-bMZTDvaEJhw" org.eventb.core.assignment="loggedin ≔ loggedin ∪ {user ↦ user_password}" org.eventb.core.generated="false" org.eventb.core.label="act0"/> + <org.eventb.core.event name="_OcnpQg4kEe-1OOl4iWIhfA" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.generated="false" org.eventb.core.label="loginUser"> + <org.eventb.core.parameter name="_OcoQUA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="user"/> + <org.eventb.core.parameter name="_OcoQUQ4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="user_password"/> + <org.eventb.core.guard name="_OcoQUg4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd0" org.eventb.core.predicate="user ∈ dom(registered)"/> + <org.eventb.core.guard name="_OcoQUw4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd1" org.eventb.core.predicate="user_password = registered(user)"/> + <org.eventb.core.guard name="_Oco3YA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd2" org.eventb.core.predicate="user ∉ dom(loggedin)"/> + <org.eventb.core.action name="_Oco3YQ4kEe-1OOl4iWIhfA" org.eventb.core.assignment="loggedin ≔ loggedin ∪ {user ↦ user_password}" org.eventb.core.generated="false" org.eventb.core.label="act0"/> </org.eventb.core.event> - <org.eventb.core.event name="_wxpAMA35Ee-bMZTDvaEJhw" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.generated="false" org.eventb.core.label="logoutUser"> - <org.eventb.core.parameter name="_wxq1YA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="user"/> - <org.eventb.core.parameter name="_wxt4sA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="password"/> - <org.eventb.core.guard name="_wxwU8A35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd0" org.eventb.core.predicate="user ∈ dom(loggedin)"/> - <org.eventb.core.guard name="_wx0mYA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd1" org.eventb.core.predicate="password = loggedin(user)"/> - <org.eventb.core.action name="_wx4QwA35Ee-bMZTDvaEJhw" org.eventb.core.assignment="loggedin ≔ loggedin ∖ {user ↦ password}" org.eventb.core.generated="false" org.eventb.core.label="act0"/> + <org.eventb.core.event name="_Oco3Yg4kEe-1OOl4iWIhfA" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.generated="false" org.eventb.core.label="logoutUser"> + <org.eventb.core.parameter name="_OcpecA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="user"/> + <org.eventb.core.parameter name="_OcpecQ4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="password"/> + <org.eventb.core.guard name="_Ocpecg4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd0" org.eventb.core.predicate="user ∈ dom(loggedin)"/> + <org.eventb.core.guard name="_Ocpecw4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd1" org.eventb.core.predicate="password = loggedin(user)"/> + <org.eventb.core.action name="_OcpedA4kEe-1OOl4iWIhfA" org.eventb.core.assignment="loggedin ≔ loggedin ∖ {user ↦ password}" org.eventb.core.generated="false" org.eventb.core.label="act0"/> </org.eventb.core.event> - <org.eventb.core.event name="_wx5e4A35Ee-bMZTDvaEJhw" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.generated="false" org.eventb.core.label="changePatientPassword"> - <org.eventb.core.parameter name="_wx8iMA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="user"/> - <org.eventb.core.parameter name="_wx9JQA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="password"/> - <org.eventb.core.parameter name="_wx9wUA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="new_password"/> - <org.eventb.core.guard name="_wx-XYA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd0" org.eventb.core.predicate="user ∈ dom(patient)"/> - <org.eventb.core.guard name="_wx_lgA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd1" org.eventb.core.predicate="password = loggedin(user)"/> - <org.eventb.core.guard name="_wyAMkA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd2" org.eventb.core.predicate="new_password ∈ PASSWORD"/> - <org.eventb.core.guard name="_wyCo0A35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd3" org.eventb.core.predicate="user ∈ dom(loggedin)"/> - <org.eventb.core.action name="_wyD28A35Ee-bMZTDvaEJhw" org.eventb.core.assignment="loggedin ≔ loggedin {user ↦ new_password}" org.eventb.core.generated="false" org.eventb.core.label="act0"/> - <org.eventb.core.action name="_wyFFEA35Ee-bMZTDvaEJhw" org.eventb.core.assignment="registered ≔ registered {user ↦ new_password}" org.eventb.core.generated="false" org.eventb.core.label="act1"/> - <org.eventb.core.action name="_wyFsIA35Ee-bMZTDvaEJhw" org.eventb.core.assignment="patient ≔ patient {user ↦ new_password}" org.eventb.core.generated="false" org.eventb.core.label="act2"/> + <org.eventb.core.event name="_OcqFgA4kEe-1OOl4iWIhfA" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.generated="false" org.eventb.core.label="changePatientPassword"> + <org.eventb.core.parameter name="_OcqFgQ4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="user"/> + <org.eventb.core.parameter name="_OcqFgg4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="password"/> + <org.eventb.core.parameter name="_OcqFgw4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="new_password"/> + <org.eventb.core.guard name="_OcqskA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd0" org.eventb.core.predicate="user ∈ dom(patient)"/> + <org.eventb.core.guard name="_OcqskQ4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd1" org.eventb.core.predicate="password = loggedin(user)"/> + <org.eventb.core.guard name="_Ocqskg4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd2" org.eventb.core.predicate="new_password ∈ PASSWORD"/> + <org.eventb.core.guard name="_OcrToA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd3" org.eventb.core.predicate="user ∈ dom(loggedin)"/> + <org.eventb.core.action name="_OcrToQ4kEe-1OOl4iWIhfA" org.eventb.core.assignment="loggedin ≔ loggedin {user ↦ new_password}" org.eventb.core.generated="false" org.eventb.core.label="act0"/> + <org.eventb.core.action name="_OcrTog4kEe-1OOl4iWIhfA" org.eventb.core.assignment="registered ≔ registered {user ↦ new_password}" org.eventb.core.generated="false" org.eventb.core.label="act1"/> + <org.eventb.core.action name="_OcrTow4kEe-1OOl4iWIhfA" org.eventb.core.assignment="patient ≔ patient {user ↦ new_password}" org.eventb.core.generated="false" org.eventb.core.label="act2"/> </org.eventb.core.event> - <org.eventb.core.event name="_wyG6QA35Ee-bMZTDvaEJhw" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.generated="false" org.eventb.core.label="changeDentistPassword"> - <org.eventb.core.parameter name="_wyIIYA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="user"/> - <org.eventb.core.parameter name="_wyIvcA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="password"/> - <org.eventb.core.parameter name="_wyJWgA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="new_password"/> - <org.eventb.core.guard name="_wyJ9kA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd0" org.eventb.core.predicate="user ∈ dom(dentist)"/> - <org.eventb.core.guard name="_wyO2EA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd1" org.eventb.core.predicate="password = loggedin(user)"/> - <org.eventb.core.guard name="_wyQEMA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd2" org.eventb.core.predicate="new_password ∈ PASSWORD"/> - <org.eventb.core.guard name="_wyR5YA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd3" org.eventb.core.predicate="user ∈ dom(loggedin)"/> - <org.eventb.core.action name="_wyTHgA35Ee-bMZTDvaEJhw" org.eventb.core.assignment="loggedin ≔ loggedin {user ↦ new_password}" org.eventb.core.generated="false" org.eventb.core.label="act0"/> - <org.eventb.core.action name="_wyTukA35Ee-bMZTDvaEJhw" org.eventb.core.assignment="registered ≔ registered {user ↦ new_password}" org.eventb.core.generated="false" org.eventb.core.label="act1"/> - <org.eventb.core.action name="_wyU8sA35Ee-bMZTDvaEJhw" org.eventb.core.assignment="dentist ≔ dentist {user ↦ new_password}" org.eventb.core.generated="false" org.eventb.core.label="act2"/> + <org.eventb.core.event name="_Ocr6sA4kEe-1OOl4iWIhfA" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.generated="false" org.eventb.core.label="changeDentistPassword"> + <org.eventb.core.parameter name="_Ocr6sQ4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="user"/> + <org.eventb.core.parameter name="_Ocr6sg4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="password"/> + <org.eventb.core.parameter name="_Ocr6sw4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="new_password"/> + <org.eventb.core.guard name="_OcshwA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd0" org.eventb.core.predicate="user ∈ dom(dentist)"/> + <org.eventb.core.guard name="_OcshwQ4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd1" org.eventb.core.predicate="password = loggedin(user)"/> + <org.eventb.core.guard name="_Ocshwg4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd2" org.eventb.core.predicate="new_password ∈ PASSWORD"/> + <org.eventb.core.guard name="_Ocshww4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd3" org.eventb.core.predicate="user ∈ dom(loggedin)"/> + <org.eventb.core.action name="_OcshxA4kEe-1OOl4iWIhfA" org.eventb.core.assignment="loggedin ≔ loggedin {user ↦ new_password}" org.eventb.core.generated="false" org.eventb.core.label="act0"/> + <org.eventb.core.action name="_Octv4A4kEe-1OOl4iWIhfA" org.eventb.core.assignment="registered ≔ registered {user ↦ new_password}" org.eventb.core.generated="false" org.eventb.core.label="act1"/> + <org.eventb.core.action name="_OcuW8A4kEe-1OOl4iWIhfA" org.eventb.core.assignment="dentist ≔ dentist {user ↦ new_password}" org.eventb.core.generated="false" org.eventb.core.label="act2"/> </org.eventb.core.event> - <org.eventb.core.event name="_wyWK0A35Ee-bMZTDvaEJhw" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.generated="false" org.eventb.core.label="changeAdminPassword"> - <org.eventb.core.parameter name="_wyXY8A35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="user"/> - <org.eventb.core.parameter name="_wyYAAA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="password"/> - <org.eventb.core.parameter name="_wyYnEA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="new_password"/> - <org.eventb.core.guard name="_wyZ1MA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd0" org.eventb.core.predicate="user ∈ dom(admin)"/> - <org.eventb.core.guard name="_wybDUA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd1" org.eventb.core.predicate="password = loggedin(user)"/> - <org.eventb.core.guard name="_wyc4gA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd2" org.eventb.core.predicate="new_password ∈ PASSWORD"/> - <org.eventb.core.guard name="_wyetsA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd3" org.eventb.core.predicate="user ∈ dom(loggedin)"/> - <org.eventb.core.action name="_wyf70A35Ee-bMZTDvaEJhw" org.eventb.core.assignment="loggedin ≔ loggedin {user ↦ new_password}" org.eventb.core.generated="false" org.eventb.core.label="act0"/> - <org.eventb.core.action name="_wyhJ8A35Ee-bMZTDvaEJhw" org.eventb.core.assignment="registered ≔ registered {user ↦ new_password}" org.eventb.core.generated="false" org.eventb.core.label="act1"/> - <org.eventb.core.action name="_wyiYEA35Ee-bMZTDvaEJhw" org.eventb.core.assignment="admin ≔ admin {user ↦ new_password}" org.eventb.core.generated="false" org.eventb.core.label="act2"/> + <org.eventb.core.event name="_OcuW8Q4kEe-1OOl4iWIhfA" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.generated="false" org.eventb.core.label="changeAdminPassword"> + <org.eventb.core.parameter name="_OcuW8g4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="user"/> + <org.eventb.core.parameter name="_Ocu-AA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="password"/> + <org.eventb.core.parameter name="_Ocu-AQ4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="new_password"/> + <org.eventb.core.guard name="_Ocu-Ag4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd0" org.eventb.core.predicate="user ∈ dom(admin)"/> + <org.eventb.core.guard name="_Ocu-Aw4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd1" org.eventb.core.predicate="password = loggedin(user)"/> + <org.eventb.core.guard name="_OcvlEA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd2" org.eventb.core.predicate="new_password ∈ PASSWORD"/> + <org.eventb.core.guard name="_OcvlEQ4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd3" org.eventb.core.predicate="user ∈ dom(loggedin)"/> + <org.eventb.core.action name="_OcvlEg4kEe-1OOl4iWIhfA" org.eventb.core.assignment="loggedin ≔ loggedin {user ↦ new_password}" org.eventb.core.generated="false" org.eventb.core.label="act0"/> + <org.eventb.core.action name="_OcwMIA4kEe-1OOl4iWIhfA" org.eventb.core.assignment="registered ≔ registered {user ↦ new_password}" org.eventb.core.generated="false" org.eventb.core.label="act1"/> + <org.eventb.core.action name="_OcwMIQ4kEe-1OOl4iWIhfA" org.eventb.core.assignment="admin ≔ admin {user ↦ new_password}" org.eventb.core.generated="false" org.eventb.core.label="act2"/> </org.eventb.core.event> - <org.eventb.core.event name="_wyjmMA35Ee-bMZTDvaEJhw" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.generated="false" org.eventb.core.label="AdminRegisterPatientToDentist"> - <org.eventb.core.parameter name="_wyq68A35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="user"/> - <org.eventb.core.parameter name="_wytXMA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="password"/> - <org.eventb.core.parameter name="_wyt-QA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="register_user"/> - <org.eventb.core.guard name="_wyulUA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd0" org.eventb.core.predicate="user ∈ dom(admin)"/> - <org.eventb.core.guard name="_wyvzcA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd1" org.eventb.core.predicate="password = loggedin(user)"/> - <org.eventb.core.guard name="_wyxBkA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd2" org.eventb.core.predicate="register_user ∈ dom(patient)"/> - <org.eventb.core.guard name="_wyyPsA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd3" org.eventb.core.predicate="user ∈ dom(loggedin)"/> - <org.eventb.core.action name="_wyzd0A35Ee-bMZTDvaEJhw" org.eventb.core.assignment="dentist ≔ dentist ∪ ({register_user} ◁ patient)" org.eventb.core.generated="false" org.eventb.core.label="act0"/> - <org.eventb.core.action name="_wy1TAA35Ee-bMZTDvaEJhw" org.eventb.core.assignment="patient ≔ patient ∖ ({register_user} ◁ patient)" org.eventb.core.generated="false" org.eventb.core.label="act1"/> + <org.eventb.core.event name="_OcwzMA4kEe-1OOl4iWIhfA" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.generated="false" org.eventb.core.label="AdminRegisterPatientToDentist"> + <org.eventb.core.parameter name="_OcwzMQ4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="user"/> + <org.eventb.core.parameter name="_OcwzMg4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="password"/> + <org.eventb.core.parameter name="_OcwzMw4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="register_user"/> + <org.eventb.core.guard name="_OcxaQA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd0" org.eventb.core.predicate="user ∈ dom(admin)"/> + <org.eventb.core.guard name="_OcxaQQ4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd1" org.eventb.core.predicate="password = loggedin(user)"/> + <org.eventb.core.guard name="_OcxaQg4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd2" org.eventb.core.predicate="register_user ∈ dom(patient)"/> + <org.eventb.core.guard name="_OcxaQw4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd3" org.eventb.core.predicate="user ∈ dom(loggedin)"/> + <org.eventb.core.action name="_OcyBUA4kEe-1OOl4iWIhfA" org.eventb.core.assignment="dentist ≔ dentist ∪ ({register_user} ◁ patient)" org.eventb.core.generated="false" org.eventb.core.label="act0"/> + <org.eventb.core.action name="_OcyBUQ4kEe-1OOl4iWIhfA" org.eventb.core.assignment="patient ≔ patient ∖ ({register_user} ◁ patient)" org.eventb.core.generated="false" org.eventb.core.label="act1"/> </org.eventb.core.event> - <org.eventb.core.event name="_wy16EA35Ee-bMZTDvaEJhw" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.generated="false" org.eventb.core.label="AdminRegisterPatientToAdministrator"> - <org.eventb.core.parameter name="_wy3IMA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="user"/> - <org.eventb.core.parameter name="_wy3vQA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="password"/> - <org.eventb.core.parameter name="_wy49YA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="register_user"/> - <org.eventb.core.guard name="_wy5kcA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd0" org.eventb.core.predicate="user ∈ dom(admin)"/> - <org.eventb.core.guard name="_wy6LgA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd1" org.eventb.core.predicate="password = loggedin(user)"/> - <org.eventb.core.guard name="_wy7ZoA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd2" org.eventb.core.predicate="register_user ∈ dom(patient)"/> - <org.eventb.core.guard name="_wy8nwA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd3" org.eventb.core.predicate="user ∈ dom(loggedin)"/> - <org.eventb.core.action name="_wzASIA35Ee-bMZTDvaEJhw" org.eventb.core.assignment="admin ≔ admin ∪ ({register_user} ◁ patient)" org.eventb.core.generated="false" org.eventb.core.label="act0"/> - <org.eventb.core.action name="_wzGYwA35Ee-bMZTDvaEJhw" org.eventb.core.assignment="patient ≔ patient ∖ ({register_user} ◁ patient)" org.eventb.core.generated="false" org.eventb.core.label="act1"/> + <org.eventb.core.event name="_OcyBUg4kEe-1OOl4iWIhfA" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.generated="false" org.eventb.core.label="AdminRegisterPatientToAdministrator"> + <org.eventb.core.parameter name="_OcyBUw4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="user"/> + <org.eventb.core.parameter name="_OcyoYA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="password"/> + <org.eventb.core.parameter name="_OcyoYQ4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="register_user"/> + <org.eventb.core.guard name="_OcyoYg4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd0" org.eventb.core.predicate="user ∈ dom(admin)"/> + <org.eventb.core.guard name="_OcyoYw4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd1" org.eventb.core.predicate="password = loggedin(user)"/> + <org.eventb.core.guard name="_OcyoZA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd2" org.eventb.core.predicate="register_user ∈ dom(patient)"/> + <org.eventb.core.guard name="_OcyoZQ4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd3" org.eventb.core.predicate="user ∈ dom(loggedin)"/> + <org.eventb.core.action name="_OcyoZg4kEe-1OOl4iWIhfA" org.eventb.core.assignment="admin ≔ admin ∪ ({register_user} ◁ patient)" org.eventb.core.generated="false" org.eventb.core.label="act0"/> + <org.eventb.core.action name="_OczPcA4kEe-1OOl4iWIhfA" org.eventb.core.assignment="patient ≔ patient ∖ ({register_user} ◁ patient)" org.eventb.core.generated="false" org.eventb.core.label="act1"/> </org.eventb.core.event> - <org.eventb.core.event name="_wzMfYA35Ee-bMZTDvaEJhw" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.generated="false" org.eventb.core.label="AdminRegisterDentistToAdministrator"> - <org.eventb.core.parameter name="_wzOUkA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="user"/> - <org.eventb.core.parameter name="_wzO7oA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="password"/> - <org.eventb.core.parameter name="_wzPisA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.identifier="register_user"/> - <org.eventb.core.guard name="_wzQJwA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd0" org.eventb.core.predicate="user ∈ dom(admin)"/> - <org.eventb.core.guard name="_wzQw0A35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd1" org.eventb.core.predicate="password = loggedin(user)"/> - <org.eventb.core.guard name="_wzT0IA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd2" org.eventb.core.predicate="register_user ∈ dom(dentist)"/> - <org.eventb.core.guard name="_wzVCQA35Ee-bMZTDvaEJhw" org.eventb.core.generated="false" org.eventb.core.label="grd3" org.eventb.core.predicate="user ∈ dom(loggedin)"/> - <org.eventb.core.action name="_wzWQYA35Ee-bMZTDvaEJhw" org.eventb.core.assignment="admin ≔ admin ∪ ({register_user} ◁ dentist)" org.eventb.core.generated="false" org.eventb.core.label="act0"/> - <org.eventb.core.action name="_wzah0A35Ee-bMZTDvaEJhw" org.eventb.core.assignment="dentist ≔ dentist ∖ ({register_user} ◁ dentist)" org.eventb.core.generated="false" org.eventb.core.label="act1"/> + <org.eventb.core.event name="_OczPcQ4kEe-1OOl4iWIhfA" org.eventb.core.convergence="0" org.eventb.core.extended="false" org.eventb.core.generated="false" org.eventb.core.label="AdminRegisterDentistToAdministrator"> + <org.eventb.core.parameter name="_OczPcg4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="user"/> + <org.eventb.core.parameter name="_OczPcw4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="password"/> + <org.eventb.core.parameter name="_Ocz2gA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.identifier="register_user"/> + <org.eventb.core.guard name="_Ocz2gQ4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd0" org.eventb.core.predicate="user ∈ dom(admin)"/> + <org.eventb.core.guard name="_Ocz2gg4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd1" org.eventb.core.predicate="password = loggedin(user)"/> + <org.eventb.core.guard name="_Ocz2gw4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd2" org.eventb.core.predicate="register_user ∈ dom(dentist)"/> + <org.eventb.core.guard name="_Oc0dkA4kEe-1OOl4iWIhfA" org.eventb.core.generated="false" org.eventb.core.label="grd3" org.eventb.core.predicate="user ∈ dom(loggedin)"/> + <org.eventb.core.action name="_Oc0dkQ4kEe-1OOl4iWIhfA" org.eventb.core.assignment="admin ≔ admin ∪ ({register_user} ◁ dentist)" org.eventb.core.generated="false" org.eventb.core.label="act0"/> + <org.eventb.core.action name="_Oc0dkg4kEe-1OOl4iWIhfA" org.eventb.core.assignment="dentist ≔ dentist ∖ ({register_user} ◁ dentist)" org.eventb.core.generated="false" org.eventb.core.label="act1"/> </org.eventb.core.event> </org.eventb.core.machineFile>