Source/Packages

Compiler.Planning.OrderedCombine

packages/compiler/planning/src/Compiler/Planning/OrderedCombine.alpha

832 lines26 declarations41.4 KiBSHA-256 69f52e43e720

def · lines 747–810

planNumericalCombineAndDeliver

Full file
Numeric specialization checks its declared realization before constructing any participant. Generic non-numeric payloads retain the underlying planner.
747def planNumericalCombineAndDeliver =
748  (lambda erased payload : Type 0 .
749    (lambda unrestricted required : (family NumericalContract) .
750      (lambda unrestricted realized : (family NumericalContract) .
751        (lambda unrestricted participants : Nat .
752          (lambda unrestricted members : (family CombineCoverage) .
753            (lambda unrestricted anchor : (family RegionTransferIdentity) .
754              (lambda unrestricted binding : (pi unrestricted stage : (family CombineStage) . (pi unrestricted source : (family CombineReference) . (pi unrestricted destination : (family CombineReference) . (pi unrestricted identity : (family RegionTransferIdentity) . payload)))) .
755                (lambda unrestricted local : (pi unrestricted role : Nat . (pi unrestricted operation : (family OrderedCombineOperation payload) . Nat)) .
756                  (lambda unrestricted transfer : (pi unrestricted identity : (family RegionTransferIdentity) . (pi unrestricted value : payload . Nat)) .
757                    (lambda unrestricted delivery : (family CombineDelivery) .
758                      (lambda unrestricted tree : (family OrderedCombineTree) .
759                        (lambda unrestricted tail : (family GlobalProtocol (family OrderedCombineOperation payload) payload (family ProtocolNoDecision)) .
760                          (eliminate
761                            StdResult
762                            (lambda unrestricted current : (family StdResult (family NumericalFailure) Nat) .
763                              (family
764                                StdResult
765                                (family OrderedCombineFailure)
766                                (family
767                                  GlobalProtocol
768                                  (family OrderedCombineOperation payload)
769                                  payload
770                                  (family ProtocolNoDecision))))
771                            (numericalCompatibility required realized)
772                            (branch
773                              StdFailure
774                              error
775                              .
776                              (constructor
777                                StdResult
778                                StdFailure
779                                (family OrderedCombineFailure)
780                                (family
781                                  GlobalProtocol
782                                  (family OrderedCombineOperation payload)
783                                  payload
784                                  (family ProtocolNoDecision))
785                                (constructor OrderedCombineFailure CombineNumericalRefused error)))
786                            (branch
787                              StdSuccess
788                              admitted
789                              .
790                              (combineRequire
791                                (family
792                                  GlobalProtocol
793                                  (family OrderedCombineOperation payload)
794                                  payload
795                                  (family ProtocolNoDecision))
796                                (naturalEqual
797                                  (bytes-length (numericalExactContractDigest required))
798                                  32)
799                                (constructor OrderedCombineFailure CombineIdentityUnavailable)
800                                (planOrderedCombineAndDeliver
801                                  payload
802                                  participants
803                                  members
804                                  (combineNumericalAnchor required anchor)
805                                  binding
806                                  local
807                                  transfer
808                                  delivery
809                                  tree
810                                  tail))))))))))))))))

The compiler supplied declaration spans and resolved links from this source snapshot. This page does not assert that this file belongs to a checked closure.