Documentation

Cedar.Thm.External.PartialValidation

Partial entity validation accepts a store exactly when no entity has an external type and every entity is valid in wfEnv.

An entity reference valid against a partial schema remains valid after linking.

A value valid against a partial schema remains valid after linking.

Linking keeps every request type of a well-formed partial schema: each request environment of its validation view has a counterpart in the result's.

theorem Cedar.Validation.entity_validation_soundness {p c t : PartialSchema} {entities : Spec.Entities} (hlink : link p c = Except.ok t) (hvalid : p.validateEntities entities = Except.ok ()) :

Entities valid against a partial schema remain valid after linking.

theorem Cedar.Validation.request_validation_soundness {p c t : PartialSchema} {request : Spec.Request} (hp : p.WellFormed) (hlink : link p c = Except.ok t) (hvalid : p.validateRequest request = Except.ok ()) :

Requests valid against a partial schema remain valid after linking.

Entities valid against every complete linking extension are valid against the partial schema.

Requests valid against every complete linking extension are valid against the partial schema.

theorem Cedar.Validation.complete_request_validation_agreement {t : PartialSchema} {schema : Schema} {request : Spec.Request} (hcomplete : t.asSchema? = some schema) :
t.validateRequest request = validateRequest schema request

A complete partial schema validates requests exactly as the schema completing it.

theorem Cedar.Validation.complete_entity_validation_agreement {p c t : PartialSchema} {schema : Schema} {entities : Spec.Entities} (hp : p.WellFormed) (hc : c.WellFormed) (hlink : link p c = Except.ok t) (hcomplete : t.asSchema? = some schema) (hvalid : t.validateEntities entities = Except.ok ()) :

At a complete link, partial entity validation implies complete validation after adding the canonical entity for every action.