Theory: choice

Parents


Type constants


Term constants


Axioms


Definitions

WELL_DEF_ALPHA
|- !A P.
     WELL_DEF_ALPHA A P =
     (?A'. (!x. x IN A ==> (ALPHA (P x) = A')) /\ A SUBSET A')
choice
|- !A P.
     WELL_DEF_ALPHA A P ==>
     (ALPHA (choice A P) =
      (@A'. (!x. x IN A ==> (ALPHA (P x) = A')) /\ A SUBSET A')) /\
     (TRACES (choice A P) =
      {[]} UNION {CONS a t | a IN A /\ t IN TRACES (P a)})

Theorems

IS_PROCESS_choice
|- !A P.
     WELL_DEF_ALPHA A P ==>
     IS_PROCESS
       ((@A'. (!x. x IN A ==> (ALPHA (P x) = A')) /\ A SUBSET A'),
        {[]} UNION {CONS a t | a IN A /\ t IN TRACES (P a)})
ALPHA_choice
|- !P A.
     WELL_DEF_ALPHA A P ==>
     (ALPHA (choice A P) =
      (@A'. (!x. x IN A ==> (ALPHA (P x) = A')) /\ A SUBSET A'))
TRACES_choice
|- !P A.
     WELL_DEF_ALPHA A P ==>
     (TRACES (choice A P) =
      {[]} UNION {CONS a t | a IN A /\ t IN TRACES (P a)})
ALPHA_choice_SPEC
|- WELL_DEF_ALPHA A P ==> (!c. c IN A ==> (ALPHA (choice A P) = ALPHA (P c)))