Qcert.Tests.TNRATest
Section TNRATest.
Definition myBR : brand_relation
:= mkBrand_relation nil (eq_refl _) (eq_refl _) .
Definition myBC : brand_context
:= @mkBrand_context trivial_foreign_type myBR nil (eq_refl _).
Instance myM : brand_model
:= mkBrand_model myBR myBC (eq_refl _) (eq_refl _).
Definition person_rec_schema :=
rec_sort (("name",String) :: ("age",Nat) :: ("zip",Nat) :: ("company",String) :: nil).
Lemma person_rec_schema_pf :
is_list_sorted ODT_lt_dec (domain person_rec_schema) = true.
Definition person_schema :=
Rec Closed person_rec_schema person_rec_schema_pf.
Definition persons_schema :=
Coll person_schema.
Lemma mkperson_typed name age zip company:
(normalize_data brand_relation_brands (mkperson name age zip company)) ▹ person_schema.
Lemma mkpersons_typed l:
normalize_data brand_relation_brands (mkpersons l) ▹ persons_schema.
Lemma persons_typed:
normalize_data brand_relation_brands persons ▹ persons_schema.
Lemma qpersons_typed {τin} :
qpersons ▷ τin >=> persons_schema.
Definition nothing_schema := Unit.
Lemma nothing_typed :
nothing ▹ nothing_schema.
Lemma q0_wt {τin} :
q0 ▷ (Coll τin) >=> Nat.
Definition q0t {τin} (d:data) (pf: d ▹ (Coll τin)) : data :=
(q0 @▷ d) pf q0_wt.
Lemma q1_wt {τin} :
q1 ▷ τin >=> persons_schema.
Definition q1t {τin} (d:data) (pf: d ▹ τin) : data :=
(q1 @▷ nothing) nothing_typed q1_wt.
Lemma q2_wt {τin} :
q2 ▷ τin >=> (Coll Nat).
Definition q2t {τin} (d:data) (pf: d ▹ τin) : data :=
(q2 @▷ d) pf q2_wt.
Lemma q3_wt {τin} :
q3 ▷ τin >=> persons_schema.
Definition q3t {τin} (d:data) (pf: d ▹ τin) : data :=
(q3 @▷ d) pf q3_wt.
Lemma q4_wt {τin} :
q4 ▷ τin >=> persons_schema.
Definition q4t {τin} (d:data) (pf: d ▹ τin) : data :=
(q4 @▷ d) pf q4_wt.
End TNRATest.