NaturalDeductionContext: add arrangePullback
[coq-hetmet.git] / src / ProgrammingLanguageEnrichment.v
1 (*********************************************************************************************************************************)
2 (* ProgrammingLanguageEnrichment                                                                                                 *)
3 (*                                                                                                                               *)
4 (*   Types are enriched in Judgments.                                                                                            *)
5 (*                                                                                                                               *)
6 (*********************************************************************************************************************************)
7
8 Generalizable All Variables.
9 Require Import Preamble.
10 Require Import General.
11 Require Import Categories_ch1_3.
12 Require Import InitialTerminal_ch2_2.
13 Require Import Functors_ch1_4.
14 Require Import Isomorphisms_ch1_5.
15 Require Import ProductCategories_ch1_6_1.
16 Require Import OppositeCategories_ch1_6_2.
17 Require Import Enrichment_ch2_8.
18 Require Import Subcategories_ch7_1.
19 Require Import NaturalTransformations_ch7_4.
20 Require Import NaturalIsomorphisms_ch7_5.
21 Require Import BinoidalCategories.
22 Require Import PreMonoidalCategories.
23 Require Import MonoidalCategories_ch7_8.
24 Require Import Coherence_ch7_8.
25 Require Import Enrichment_ch2_8.
26 Require Import RepresentableStructure_ch7_2.
27 Require Import FunctorCategories_ch7_7.
28
29 Require Import Enrichments.
30 Require Import NaturalDeduction.
31 Require Import NaturalDeductionCategory.
32 Require Import ProgrammingLanguageCategory.
33         Export ProgrammingLanguageCategory.
34
35 Section ProgrammingLanguageEnrichment.
36
37   Context `(PL:ProgrammingLanguage).
38
39   Definition TypesEnrichedInJudgments : SurjectiveEnrichment.
40     refine
41       {| senr_c_pm     := TypesL_PreMonoidal PL
42        ; senr_v        := JudgmentsL PL
43        ; senr_v_bin    := Judgments_Category_binoidal _
44        ; senr_v_pmon   := Judgments_Category_premonoidal _
45        ; senr_v_mon    := Judgments_Category_monoidal _
46        ; senr_c_bin    := Types_binoidal PL
47        ; senr_c        := TypesL PL
48       |}.
49       Defined.
50
51 End ProgrammingLanguageEnrichment.
52