]> matita.cs.unibo.it Git - helm.git/commitdiff
- improved Makefile esp. with the "trim" function
authorFerruccio Guidi <ferruccio.guidi@unibo.it>
Sun, 10 Mar 2013 17:05:30 +0000 (17:05 +0000)
committerFerruccio Guidi <ferruccio.guidi@unibo.it>
Sun, 10 Mar 2013 17:05:30 +0000 (17:05 +0000)
- some files trimmed

69 files changed:
matita/matita/contribs/lambdadelta/Makefile
matita/matita/contribs/lambdadelta/apps_2/functional/dsubst.ma
matita/matita/contribs/lambdadelta/apps_2/web/apps_2.ldw.xml
matita/matita/contribs/lambdadelta/apps_2/web/apps_2_src.tbl
matita/matita/contribs/lambdadelta/basic_2/computation/acp.ma
matita/matita/contribs/lambdadelta/basic_2/computation/acp_cr.ma
matita/matita/contribs/lambdadelta/basic_2/computation/cprs_cprs.ma
matita/matita/contribs/lambdadelta/basic_2/computation/cprs_tstc_vector.ma
matita/matita/contribs/lambdadelta/basic_2/computation/csn.ma
matita/matita/contribs/lambdadelta/basic_2/computation/csn_aaa.ma
matita/matita/contribs/lambdadelta/basic_2/computation/csn_alt.ma
matita/matita/contribs/lambdadelta/basic_2/computation/csn_tstc_vector.ma
matita/matita/contribs/lambdadelta/basic_2/computation/dxprs_lift.ma
matita/matita/contribs/lambdadelta/basic_2/computation/fprs_cprs.ma
matita/matita/contribs/lambdadelta/basic_2/dynamic/lsubsv.ma
matita/matita/contribs/lambdadelta/basic_2/dynamic/snv.ma
matita/matita/contribs/lambdadelta/basic_2/dynamic/snv_ltpr.ma
matita/matita/contribs/lambdadelta/basic_2/dynamic/snv_ssta.ma
matita/matita/contribs/lambdadelta/basic_2/dynamic/snv_ssta_ltpr.ma
matita/matita/contribs/lambdadelta/basic_2/equivalence/cpcs.ma
matita/matita/contribs/lambdadelta/basic_2/equivalence/cpcs_cpcs.ma
matita/matita/contribs/lambdadelta/basic_2/grammar/cl_shift.ma
matita/matita/contribs/lambdadelta/basic_2/grammar/lenv_append.ma
matita/matita/contribs/lambdadelta/basic_2/grammar/lenv_px.ma
matita/matita/contribs/lambdadelta/basic_2/grammar/term.ma
matita/matita/contribs/lambdadelta/basic_2/reducibility/cfpr.ma
matita/matita/contribs/lambdadelta/basic_2/reducibility/cfpr_aaa.ma
matita/matita/contribs/lambdadelta/basic_2/reducibility/cfpr_ltpss.ma
matita/matita/contribs/lambdadelta/basic_2/reducibility/cif.ma
matita/matita/contribs/lambdadelta/basic_2/reducibility/cnf_cif.ma
matita/matita/contribs/lambdadelta/basic_2/reducibility/cpr.ma
matita/matita/contribs/lambdadelta/basic_2/reducibility/cpr_cpr.ma
matita/matita/contribs/lambdadelta/basic_2/reducibility/lfpr_fpr.ma
matita/matita/contribs/lambdadelta/basic_2/reducibility/ltpr_ltpss_sn.ma
matita/matita/contribs/lambdadelta/basic_2/reducibility/tpr.ma
matita/matita/contribs/lambdadelta/basic_2/reducibility/tpr_delift.ma
matita/matita/contribs/lambdadelta/basic_2/reducibility/tpr_tpr.ma
matita/matita/contribs/lambdadelta/basic_2/reducibility/tpr_tpss.ma
matita/matita/contribs/lambdadelta/basic_2/static/sd.ma
matita/matita/contribs/lambdadelta/basic_2/static/ssta_ltpss_dx.ma
matita/matita/contribs/lambdadelta/basic_2/substitution/gdrop.ma
matita/matita/contribs/lambdadelta/basic_2/substitution/ldrop.ma
matita/matita/contribs/lambdadelta/basic_2/substitution/ldrop_append.ma
matita/matita/contribs/lambdadelta/basic_2/substitution/ldrop_ldrop.ma
matita/matita/contribs/lambdadelta/basic_2/substitution/ldrop_sfr.ma
matita/matita/contribs/lambdadelta/basic_2/substitution/lift.ma
matita/matita/contribs/lambdadelta/basic_2/substitution/lift_lift.ma
matita/matita/contribs/lambdadelta/basic_2/substitution/lsubs.ma
matita/matita/contribs/lambdadelta/basic_2/substitution/tps.ma
matita/matita/contribs/lambdadelta/basic_2/substitution/tps_lift.ma
matita/matita/contribs/lambdadelta/basic_2/unfold/delift_alt.ma
matita/matita/contribs/lambdadelta/basic_2/unfold/delift_lift.ma
matita/matita/contribs/lambdadelta/basic_2/unfold/delift_ltpss.ma
matita/matita/contribs/lambdadelta/basic_2/unfold/delift_tpss.ma
matita/matita/contribs/lambdadelta/basic_2/unfold/gr2_minus.ma
matita/matita/contribs/lambdadelta/basic_2/unfold/gr2_plus.ma
matita/matita/contribs/lambdadelta/basic_2/unfold/lifts_lift.ma
matita/matita/contribs/lambdadelta/basic_2/unfold/lifts_lift_vector.ma
matita/matita/contribs/lambdadelta/basic_2/unfold/ltpss_dx.ma
matita/matita/contribs/lambdadelta/basic_2/unfold/ltpss_dx_tpss.ma
matita/matita/contribs/lambdadelta/basic_2/unfold/ltpss_sn.ma
matita/matita/contribs/lambdadelta/basic_2/unfold/ltpss_sn_ldrop.ma
matita/matita/contribs/lambdadelta/basic_2/unfold/tpss.ma
matita/matita/contribs/lambdadelta/basic_2/unfold/tpss_alt.ma
matita/matita/contribs/lambdadelta/basic_2/unwind/sstas_ltpss_sn.ma
matita/matita/contribs/lambdadelta/basic_2/web/basic_2.ldw.xml
matita/matita/contribs/lambdadelta/basic_2/web/basic_2_blk.tbl
matita/matita/contribs/lambdadelta/basic_2/web/basic_2_src.tbl
matita/matita/contribs/lambdadelta/ground_2/arith.ma

index 8b6f8e6ed2aba2b2862bffa94d0731690775f681..f8115150df2a085a1cfe7667de7c7ef22c5feb54 100644 (file)
@@ -1,24 +1,31 @@
-OPEN = (
+OPEN := (
+H    := @
 
-H        = @
-XOA_DIR  = ../../../components/binaries/xoa
-XOA      = xoa.native
-DEP_DIR  = ../../../components/binaries/matitadep
-DEP      = matitadep.native
-MAC_DIR  = ../../../components/binaries/mac
-MAC      = mac.native
-PRB_DIR  = ../../../components/binaries/probe
-PRB      = probe.native
-PRB_OPTS = ../../matita.conf.xml -g
+TRIM := sed "s/ \\+$$//"
 
-XOA_CONF    = ground_2/xoa.conf.xml
-XOA_TARGETS = ground_2/xoa_notation.ma ground_2/xoa.ma
+XOA_DIR  := ../../../components/binaries/xoa
+XOA      := xoa.native
+DEP_DIR  := ../../../components/binaries/matitadep
+DEP      := matitadep.native
+MAC_DIR  := ../../../components/binaries/mac
+MAC      := mac.native
+PRB_DIR  := ../../../components/binaries/probe
+PRB      := probe.native
+PRB_OPTS := ../../matita.conf.xml -g
 
-ORIG     = . ./orig.sh 
+XOA_CONF    := ground_2/xoa.conf.xml
+XOA_TARGETS := ground_2/xoa_notation.ma ground_2/xoa.ma
 
-ORIGS    = basic_2/basic_1.orig
+ORIG     := . ./orig.sh 
 
-PACKAGES = ground_2 basic_2 apps_2
+ORIGS    := basic_2/basic_1.orig
+
+TAGS     := all xoa orig deps stats tbls trim
+
+PACKAGES := ground_2 basic_2 apps_2
+
+LDWS := $(shell find -name "*.ldw.xml")
+TBLS := $(shell find -name "*.tbl")
 
 all:
        ../../matitac.opt
@@ -28,6 +35,10 @@ all:
 define MAS_TEMPLATE
   MAS_$(1) := $$(shell find $(1) -name "*.ma")
   MAS      += $$(MAS_$(1))
+
+$(1)/$(1)_probe.txt: $$(MAS_$(1))
+       @echo "  PROBE $(1)"
+       $$(H)$$(PRB_DIR)/$$(PRB) $$(PRB_OPTS) $(1) -sn -on -i > $$@
 endef
 
 $(foreach PKG, $(PACKAGES), $(eval $(call MAS_TEMPLATE,$(PKG))))
@@ -44,7 +55,7 @@ $(XOA_TARGETS): $(XOA_CONF)
 
 orig: $(ORIGS)
        @echo "  ORIG basic_2"
-       $(H)$(ORIG) basic_2 < $(ORIGS)
+       $(H)$(ORIG) basic_2 < $<
 
 # dep ########################################################################
 
@@ -58,52 +69,55 @@ define STATS_TEMPLATE
   STT_$(1) := $(1).stats
   STTS     += $$(STT_$(1))
 
-  $$(STT_$(1)): S1 = $$(shell $$(MAC_DIR)/$$(MAC) $$(MAS_$(1)))
-  $$(STT_$(1)): S2 := $$(shell echo $$$$(($$(S1) / 5120)))
-  $$(STT_$(1)): S4 := $$(shell ls $$(MAS_$(1)) | wc -l)
-  $$(STT_$(1)): S5 := $$(shell $$(PRB_DIR)/$$(PRB) $$(PRB_OPTS) $(1) -sn -on)  
-  $$(STT_$(1)): P1 := $$(shell grep "theorem " $$(MAS_$(1)) | wc -l)
-  $$(STT_$(1)): P2 := $$(shell grep "lemma " $$(MAS_$(1)) | wc -l)
-  $$(STT_$(1)): P3 := $$(shell grep "fact " $$(MAS_$(1)) | wc -l)
-  $$(STT_$(1)): P4 := $$(shell grep qed $$(MAS_$(1)) | wc -l)
-  $$(STT_$(1)): C1 := $$(shell grep "inductive \|record " $$(MAS_$(1)) | wc -l)
-  $$(STT_$(1)): C2 := $$(shell grep "definition \|let rec " $$(MAS_$(1)) | wc -l)
-  $$(STT_$(1)): M1 := $$(shell grep "axiom " $$(MAS_$(1)) | wc -l)
-  $$(STT_$(1)): M2 := $$(shell grep "$$(OPEN)\*[^*:]*$$$$" $$(MAS_$(1)) | wc -l)
-  $$(STT_$(1)): M3 := $$(shell grep "(\*\*)" $$(MAS_$(1)) | wc -l)
-
-$$(STT_$(1)):
+  $$(STT_$(1)): S1 := $$(shell $$(MAC_DIR)/$$(MAC) $$(MAS_$(1)))
+  $$(STT_$(1)): S2  = $$(shell echo $$$$(($$(S1) / 5120)))
+  $$(STT_$(1)): S4  = $$(shell ls $$(MAS_$(1)) | wc -l)
+  $$(STT_$(1)): S5  = $$(shell cat $(1)/$(1)_probe.txt)  
+  $$(STT_$(1)): P1  = $$(shell grep "theorem " $$(MAS_$(1)) | wc -l)
+  $$(STT_$(1)): P2  = $$(shell grep "lemma " $$(MAS_$(1)) | wc -l)
+  $$(STT_$(1)): P3  = $$(shell grep "fact " $$(MAS_$(1)) | wc -l)
+  $$(STT_$(1)): P4  = $$(shell grep qed $$(MAS_$(1)) | wc -l)
+  $$(STT_$(1)): C1  = $$(shell grep "inductive \|record " $$(MAS_$(1)) | wc -l)
+  $$(STT_$(1)): C2  = $$(shell grep "definition \|let rec " $$(MAS_$(1)) | wc -l)
+  $$(STT_$(1)): M1  = $$(shell grep "axiom " $$(MAS_$(1)) | wc -l)
+  $$(STT_$(1)): M2  = $$(shell grep "$$(OPEN)\*[^*:]*$$$$" $$(MAS_$(1)) | wc -l)
+  $$(STT_$(1)): M3  = $$(shell grep "(\*\*)" $$(MAS_$(1)) | wc -l)
+
+$$(STT_$(1)): $$(MAS_$(1)) $(1)/$(1)_probe.txt
        @printf '\x1B[1;40;37m'
-       @printf '%-15s %-44s' 'Statistics for:' $(1)
+       @printf '%-15s %-47s' 'Statistics for:' $(1)
        @printf '\x1B[0m\n'
        @printf '\x1B[1;40;35m'
        @printf '%-8s %6i' Chars $$(S1)
        @printf '   %-8s %4i' Pages $$(S2)
-       @printf '   %-26s' ''
+       @printf '   %-7s %7i' Nodes $$(word 3, $$(S5))
+       @printf '   %-11s' ''
        @printf '\x1B[0m\n'
        @printf '\x1B[1;40;36m'
        @printf '%-8s %6i' Files $$(S4)
-       @printf '   %-8s %4i' Sources $$(word 1, $$(S5))        
-       @printf '   %-7s %4i' Objects $$(word 2, $$(S5))
+       @printf '   %-8s %4i' Sources $$(word 1, $$(S5))
+       @printf '   %-7s %7i' Objects $$(word 2, $$(S5))
        @printf '   %-11s' ''
        @printf '\x1B[0m\n'     
        @printf '\x1B[1;40;32m'
        @printf '%-8s %6i' Theorems $$(P1)
        @printf '   %-8s %4i' Lemmas $$(P2)
-       @printf '   %-7s %4i' Facts $$(P3)
+       @printf '   %-7s %7i' Facts $$(P3)
        @printf '   %-6s %4i' Proofs $$(P4)
        @printf '\x1B[0m\n'     
        @printf '\x1B[1;40;33m'
        @printf '%-8s %6i' Declared $$(C1)
        @printf '   %-8s %4i' Defined $$(C2)    
-       @printf '   %-26s' ''
+       @printf '   %-29s' ''
        @printf '\x1B[0m\n'
        @printf '\x1B[1;40;31m'
        @printf '%-8s %6i' Axioms $$(M1)
        @printf '   %-8s %4i' Comments $$(M2)
-       @printf '   %-7s %4i' Marks $$(M3)
+       @printf '   %-7s %7i' Marks $$(M3)
        @printf '   %-11s' ''
        @printf '\x1B[0m\n'
+
+.PHONY: $$(STT_$(1))
 endef
 
 ifeq ($(MAKECMDGOALS), stats)
@@ -115,49 +129,65 @@ stats: $(STTS)
 # summary ####################################################################
 
 define SUMMARY_TEMPLATE
-  TBL_$(1) := $(1)/web/$(1)_sum.tbl  
-  TBLS     += $$(TBL_$(1))
-
-  $$(TBL_$(1)): S1 := $$(shell ls $$(MAS_$(1)) | wc -l)
-  $$(TBL_$(1)): S2 := $$(shell $$(MAC_DIR)/$$(MAC) $$(MAS_$(1)))
-  $$(TBL_$(1)): S3 := $$(shell $$(PRB_DIR)/$$(PRB) $$(PRB_OPTS) $(1) -i)
-  $$(TBL_$(1)): C1 := $$(shell grep "inductive \|record " $$(MAS_$(1)) | wc -l)
-  $$(TBL_$(1)): C2 := $$(shell grep "definition \|let rec " $$(MAS_$(1)) | wc -l)
-  $$(TBL_$(1)): C3 := $$(shell grep "inductive \|record \|definition \|let rec " $$(MAS_$(1)) | wc -l)
-  $$(TBL_$(1)): P1 := $$(shell grep "theorem " $$(MAS_$(1)) | wc -l)
-  $$(TBL_$(1)): P2 := $$(shell grep "lemma " $$(MAS_$(1)) | wc -l)
-  $$(TBL_$(1)): P3 := $$(shell grep "lemma \|theorem " $$(MAS_$(1)) | wc -l)
-
-  $$(TBL_$(1)): $$(MAS_$(1))
+  SUM_$(1) := $(1)/web/$(1)_sum.tbl  
+  SUMS     += $$(SUM_$(1))
+
+  $$(SUM_$(1)): S1 = $$(shell ls $$(MAS_$(1)) | wc -l)
+  $$(SUM_$(1)): S2 = $$(shell $$(MAC_DIR)/$$(MAC) $$(MAS_$(1)))
+  $$(SUM_$(1)): S3 = $$(shell cat $(1)/$(1)_probe.txt)
+  $$(SUM_$(1)): C1 = $$(shell grep "inductive \|record " $$(MAS_$(1)) | wc -l)
+  $$(SUM_$(1)): C2 = $$(shell grep "definition \|let rec " $$(MAS_$(1)) | wc -l)
+  $$(SUM_$(1)): C3 = $$(shell grep "inductive \|record \|definition \|let rec " $$(MAS_$(1)) | wc -l)
+  $$(SUM_$(1)): P1 = $$(shell grep "theorem " $$(MAS_$(1)) | wc -l)
+  $$(SUM_$(1)): P2 = $$(shell grep "lemma " $$(MAS_$(1)) | wc -l)
+  $$(SUM_$(1)): P3 = $$(shell grep "lemma \|theorem " $$(MAS_$(1)) | wc -l)
+
+  $$(SUM_$(1)): $$(MAS_$(1)) $(1)/$(1)_probe.txt
        @printf '  SUMMARY $(1)\n'
-       @printf 'name "$$(basename $$(@F))"\n\n'       >  $$@
-       @printf 'table {\n'                            >> $$@
-       @printf '   class "grey" [ "category"\n'       >> $$@
-       @printf '      [ "objects" * ]\n'              >> $$@
-       @printf '   ]\n'                               >> $$@
-       @printf '   class "cyan" [ "sizes"\n'          >> $$@
-       @printf '      [ "files" "$$(S1)" ]\n'         >> $$@
-       @printf '      [ "characters" "$$(S2)" ]\n'    >> $$@
-       @printf '      [ "nodes" "$$(S3)" ]\n'         >> $$@
-       @printf '   ]\n'                               >> $$@   
-       @printf '   class "green" [ "propositions"\n'  >> $$@
-       @printf '      [ "theorems" "$$(P1)" ]\n'      >> $$@
-       @printf '      [ "lemmas"   "$$(P2)" ]\n'      >> $$@
-       @printf '      [ "total"    "$$(P3)" ]\n'      >> $$@
-       @printf '   ]\n'                               >> $$@
-       @printf '   class "yellow" [ "concepts"\n'     >> $$@
-       @printf '      [ "declared" "$$(C1)" ]\n'      >> $$@
-       @printf '      [ "defined"  "$$(C2)" ]\n'      >> $$@
-       @printf '      [ "total"    "$$(C3)" ]\n'      >> $$@
-       @printf '   ]\n'                               >> $$@
-       @printf '}\n\n'                                >> $$@
-       @printf 'class "component" { 0 }\n\n'          >> $$@
-       @printf 'class "plane" { 1 } { 3 } { 5 }\n\n'  >> $$@
-       @printf 'class "number" { 2 } { 4 } { 6 }\n\n' >> $$@
+       @printf 'name "$$(basename $$(@F))"\n\n'           >  $$@
+       @printf 'table {\n'                                >> $$@
+       @printf '   class "grey" [ "category"\n'           >> $$@
+       @printf '      [ "objects" * ]\n'                  >> $$@
+       @printf '   ]\n'                                   >> $$@
+       @printf '   class "cyan" [ "sizes"\n'              >> $$@
+       @printf '      [ "files" "$$(S1)" ]\n'             >> $$@
+       @printf '      [ "characters" "$$(S2)" ]\n'        >> $$@
+       @printf '      [ "nodes" "$$(word 3, $$(S5))" ]\n' >> $$@
+       @printf '   ]\n'                                   >> $$@       
+       @printf '   class "green" [ "propositions"\n'      >> $$@
+       @printf '      [ "theorems" "$$(P1)" ]\n'          >> $$@
+       @printf '      [ "lemmas"   "$$(P2)" ]\n'          >> $$@
+       @printf '      [ "total"    "$$(P3)" ]\n'          >> $$@
+       @printf '   ]\n'                                   >> $$@
+       @printf '   class "yellow" [ "concepts"\n'         >> $$@
+       @printf '      [ "declared" "$$(C1)" ]\n'          >> $$@
+       @printf '      [ "defined"  "$$(C2)" ]\n'          >> $$@
+       @printf '      [ "total"    "$$(C3)" ]\n'          >> $$@
+       @printf '   ]\n'                                   >> $$@
+       @printf '}\n\n'                                    >> $$@
+       @printf 'class "component" { 0 }\n\n'              >> $$@
+       @printf 'class "plane" { 1 } { 3 } { 5 }\n\n'      >> $$@
+       @printf 'class "number" { 2 } { 4 } { 6 }\n\n'     >> $$@
 endef
 
 ifeq ($(MAKECMDGOALS), tbls)
    $(foreach PKG, $(PACKAGES), $(eval $(call SUMMARY_TEMPLATE,$(PKG))))
 endif
 
-tbls: $(TBLS)
+tbls: $(SUMS)
+
+# trim #######################################################################
+
+TRIMS := $(MAS) $(TBLS) $(LDWS)
+
+%.trimmed: %
+       $(H)expand $< | $(TRIM) > $@
+       $(H)if diff $< $@ > /dev/null; then $(RM) $@; else echo "  TRIM $<" & mv $@ $<; fi
+
+trim: $(TRIMS:%=%.trimmed)
+
+##############################################################################
+
+.PHONY: $(TAGS)
+
+.SUFFIXES:
index 20e372bb652c963e714429752bdedea5816a2c37..c43cd1d740601d11154e34beb0e754c34f8628fd 100644 (file)
@@ -41,7 +41,7 @@ theorem fdsubst_delift: ∀K,V,T,L,d.
 [ * #i #L #d #HLK normalize in ⊢ (? ? ? ? ? %); /2 width=3/
   elim (lt_or_eq_or_gt i d) #Hid
   [ -HLK >(tri_lt ?????? Hid) /3 width=3/
-  | destruct >tri_eq /4 width=4 by tpss_strap2, tps_subst, le_n, ex2_intro/ (**) (* too slow without trace *)   
+  | destruct >tri_eq /4 width=4 by tpss_strap2, tps_subst, le_n, ex2_intro/ (**) (* too slow without trace *)
   | -HLK >(tri_gt ?????? Hid) /3 width=3/
   ]
 | * /3 width=1/ /4 width=1/
index 394568e00b0a750cb78b38e1015d9eb4bf5a17ed..1f61d93050382e5cc031a38efd063fb044f4f660 100644 (file)
@@ -8,17 +8,17 @@
    <section>Contents of the Specification</section>
    <body>This specification comprises a collection of checked
          applications of λδ version 2.
-        In particular it contains the components below.
+         In particular it contains the components below.
    </body>
    <news date="MLTT1.">
          Martin-Löf's Type Theory with one universe
-        using λδ as theory of expressions.
+         using λδ as theory of expressions.
    </news>
    <news date="Functional.">
          The validation algorithm for λδ as implemented in
-        <rlink to="implementation.html#helena">Helena 0.8</rlink>.
+         <rlink to="implementation.html#helena">Helena 0.8</rlink>.
    </news>
-   
+
    <section>Summary of the Specification</section>
    <body>Here is a numerical acount of the specification's contents
          and its timeline.
@@ -29,7 +29,7 @@
    </news>
    <news date="2011 December 20.">
          The Functional component is started
-        inside the specification of λδ version 2.
+         inside the specification of λδ version 2.
    </news>
    <news date="2011 December 12.">
          The MLTT1 component is started.
@@ -39,8 +39,8 @@
    <body>The source files are grouped in planes and components
          according to the following table.
          Each component contains its own notation file.
-        The notation for the relations or functions introduced in each file
-        is shown in parentheses (? are placeholders).
+         The notation for the relations or functions introduced in each file
+         is shown in parentheses (? are placeholders).
    </body>
    <table name="apps_2_src"/>
 
index d5508e3d6ca731b3bc02c96ed60a1790dbb51f52..556df99a71fd830b14f9fbd0e0e7e3893654ade3 100644 (file)
@@ -3,29 +3,29 @@ name "apps_2_src"
 table {
    class "grey"
    [ { "component" * } {
-        [ { "plane" * } { 
+        [ { "plane" * } {
              [ "files" * ]
-         }
+          }
         ]
      }
    ]
    class "orange"
    [ { "MLTT1" * } {
-        [ { "" * } { 
+        [ { "" * } {
              [ "genv_primitive" "judgement" * ]
-         }
+          }
         ]
      }
    ]
    class "red"
    [ { "functional" * } {
-        [ { "reduction and type machine" * } { 
+        [ { "reduction and type machine" * } {
              [ "rtm" "rtm_step ( ? ⇨ ? )" * ]
-         }
+          }
         ]
-        [ { "unfold" * } { 
+        [ { "unfold" * } {
              [ "lift ( ↑[?,?] ? )" "subst ( [?←?] ? )" * ]
-         }
+          }
         ]
      }
    ]
index dc046b094990e20180b2f8ee38cd2c5d945ca5f1..b7b967e1a2df51b34b165645011db12829f52202 100644 (file)
@@ -26,7 +26,7 @@ definition CP3 ≝ λRR:lenv→relation term. λRP:lenv→predicate term.
                  ∀L,V,k. RP L (ⓐ⋆k.V) → RP L V.
 
 definition CP4 ≝ λRR:lenv→relation term. λRS:relation term.
-                 ∀L0,L,T,T0,d,e. NF … (RR L) RS T → 
+                 ∀L0,L,T,T0,d,e. NF … (RR L) RS T →
                  ⇩[d, e] L0 ≡ L → ⇧[d, e] T ≡ T0 → NF … (RR L0) RS T0.
 
 definition CP4s ≝ λRR:lenv→relation term. λRS:relation term.
index b0b15e6655d0897977405ff99ee2d109933295c8..e8dfcbfde0612283bf67ebad19f580f1aad349a1 100644 (file)
@@ -89,7 +89,7 @@ qed.
 lemma rp_lifts: ∀RR,RS,RP. acr RR RS RP (λL,T. RP L T) →
                 ∀des,L0,L,V,V0. ⇩*[des] L0 ≡ L → ⇧*[des] V ≡ V0 →
                 RP L V → RP L0 V0.
-#RR #RS #RP #HRP #des #L0 #L #V #V0 #HL0 #HV0 #HV 
+#RR #RS #RP #HRP #des #L0 #L #V #V0 #HL0 #HV0 #HV
 @acr_lifts /width=6/
 @(s7 … HRP)
 qed.
@@ -103,9 +103,9 @@ lemma rp_liftsv_all: ∀RR,RS,RP. acr RR RS RP (λL,T. RP L T) →
 @conj /2 width=1/ /2 width=6 by rp_lifts/
 qed.
 
-(* Basic_1: was: 
+(* Basic_1: was:
    sc3_sn3 sc3_abst sc3_appl sc3_abbr sc3_bind sc3_cast sc3_lift
-*) 
+*)
 lemma aacr_acr: ∀RR,RS,RP. acp RR RS RP → acr RR RS RP (λL,T. RP L T) →
                 ∀A. acr RR RS RP (aacr RP A).
 #RR #RS #RP #H1RP #H2RP #A elim A -A normalize //
index 3326b8b46d3c74ec913ef8bae4b3e77b0a65420d..c89fab769f10b4da8df8b40ff3bace410a64c383 100644 (file)
@@ -70,7 +70,7 @@ lemma cprs_inv_appl1: ∀L,V1,T1,U2. L ⊢ ⓐV1. T1 ➡* U2 →
   [ #V2 #T2 #HV02 #HT02 #H destruct /4 width=5/
   | #a #V2 #W2 #T #T2 #HV02 #HT2 #H1 #H2 destruct /4 width=7/
   | #a #V #V2 #W0 #W2 #T #T2 #HV0 #HW02 #HT2 #HV2 #H1 #H2 destruct
-    @or3_intro2 @(ex4_5_intro … HV2 HT10) /2 width=3/ /3 width=1/ (**) (* explicit constructor. /5 width=8/ is too slow because TC_transitive gets in the way *) 
+    @or3_intro2 @(ex4_5_intro … HV2 HT10) /2 width=3/ /3 width=1/ (**) (* explicit constructor. /5 width=8/ is too slow because TC_transitive gets in the way *)
   ]
 | /4 width=9/
 | /4 width=11/
@@ -115,7 +115,7 @@ qed.
 lemma cprs_bind1: ∀I,L,V1,T1,T2. L. ⓑ{I}V1 ⊢ T1 ➡* T2 → ∀V2. L ⊢ V1 ➡* V2 →
                   ∀a. L ⊢ ⓑ{a,I}V1. T1 ➡* ⓑ{a,I}V2. T2.
 * /2 width=1/ /2 width=2/
-qed. 
+qed.
 
 lemma cprs_abbr2_dx: ∀L,V1,V2. L ⊢ V1 ➡ V2 → ∀T1,T2. L. ⓓV2 ⊢ T1 ➡* T2 →
                      ∀a. L ⊢ ⓓ{a}V1. T1 ➡* ⓓ{a}V2. T2.
@@ -135,10 +135,10 @@ lapply (IHV1 T1 T1 ? a) -IHV1 // #HV1
 @(cprs_trans … HV1) -HV1 /2 width=1/
 qed.
 
-lemma cprs_bind2: ∀L,V1,V2. L ⊢ V1 ➡* V2 → ∀I,T1,T2. L. ⓑ{I}V2 ⊢ T1 ➡* T2 → 
+lemma cprs_bind2: ∀L,V1,V2. L ⊢ V1 ➡* V2 → ∀I,T1,T2. L. ⓑ{I}V2 ⊢ T1 ➡* T2 →
                   ∀a. L ⊢ ⓑ{a,I}V1. T1 ➡* ⓑ{a,I}V2. T2.
 #L #V1 #V2 #HV12 * /2 width=1/ /2 width=2/
-qed. 
+qed.
 
 lemma cprs_beta_dx: ∀L,V1,V2,W,T1,T2.
                     L ⊢ V1 ➡ V2 → L.ⓛW ⊢ T1 ➡* T2 →
index fd3eb585e2e97d1ae456f82f56aa1dd8654cf174..8babd61baf1314bccdfb2b8e6a1849104bbd96d8 100644 (file)
@@ -130,7 +130,7 @@ elim (cprs_inv_appl1 … H) -H *
       @(cprs_strap2 … (ⓓ{b}V0.ⓐV2a.T0)) [ /3 width=3/ ] -V1a /3 width=1/
     ]
   ]
-]  
+]
 qed-.
 
 (* Basic_1: was: pr3_iso_appls_cast *)
index 3ed31016442ad1c05ebf1cbdd72073e28045cf34..2a7f4b7b22e57507c364afa353132eb0f97a0ffc 100644 (file)
@@ -61,7 +61,7 @@ elim (cpr_inv_cast1 … H1) -H1
 [ * #W0 #T0 #HLW0 #HLT0 #H destruct
   elim (eq_false_inv_tpair_sn … H2) -H2
   [ /3 width=3/
-  | -HLW0 * #H destruct /3 width=1/ 
+  | -HLW0 * #H destruct /3 width=1/
   ]
 | /3 width=3/
 ]
index 67744a098a152cd8101ea18dfe6e37f566856b47..109d9301849230598b34de25da15422dac0828c7 100644 (file)
@@ -22,4 +22,4 @@ include "basic_2/computation/csn_tstc_vector.ma".
 lemma csn_aaa: ∀L,T,A. L ⊢ T ⁝ A → L ⊢ ⬊* T.
 #L #T #A #H
 @(acp_aaa … csn_acp csn_acr … H)
-qed. 
+qed.
index eeba707dcacac19081e94c6ed0c58c2183a7bdce..c880b2dd2f632b56ca2db5f157b13c4cc4ab341e 100644 (file)
@@ -68,7 +68,7 @@ lemma csna_intro_cpr: ∀L,T1.
   [ -HLT1 -HLT2 -H /3 width=1/
   | -IHT -HT12 /4 width=3/
   ]
-] 
+]
 qed.
 
 (* Main properties **********************************************************)
index cfee668b9ed5988cd440b98584092f27af6b43da..81b8696b4d139342cc68cc4d433a44955e0776b2 100644 (file)
@@ -22,7 +22,7 @@ include "basic_2/computation/csn_vector.ma".
 (* Advanced properties ******************************************************)
 
 (* Basic_1: was only: sn3_appls_lref *)
-lemma csn_applv_cnf: ∀L,T. 𝐒⦃T⦄ → L ⊢ 𝐍⦃T⦄ → 
+lemma csn_applv_cnf: ∀L,T. 𝐒⦃T⦄ → L ⊢ 𝐍⦃T⦄ →
                      ∀Vs. L ⊢ ⬊* Vs → L ⊢ ⬊* ⒶVs.T.
 #L #T #H1T #H2T #Vs elim Vs -Vs [ #_ @(csn_cnf … H2T) ] (**) (* /2 width=1/ does not work *)
 #V #Vs #IHV #H
@@ -68,12 +68,12 @@ lemma csn_applv_delta: ∀L,K,V1,i. ⇩[0, i] L ≡ K. ⓓV1 →
 ]
 qed.
 
-(* Basic_1: was: sn3_appls_abbr *) 
+(* Basic_1: was: sn3_appls_abbr *)
 lemma csn_applv_theta: ∀a,L,V1s,V2s. ⇧[0, 1] V1s ≡ V2s →
                        ∀V,T. L ⊢ ⬊* ⓓ{a}V. ⒶV2s. T → L ⊢ ⬊* V →
                        L ⊢ ⬊* ⒶV1s. ⓓ{a}V. T.
 #a #L #V1s #V2s * -V1s -V2s /2 width=1/
-#V1s #V2s #V1 #V2 #HV12 #H 
+#V1s #V2s #V1 #V2 #HV12 #H
 generalize in match HV12; -HV12 generalize in match V2; -V2 generalize in match V1; -V1
 elim H -V1s -V2s /2 width=3/
 #V1s #V2s #V1 #V2 #HV12 #HV12s #IHV12s #W1 #W2 #HW12 #V #T #H #HV
index 431a9f5113ff61a21684dec1e7a186ed19ae9018..628563cf416aa2cb160d9bc1bb5d3c0befb36ddc 100644 (file)
@@ -30,7 +30,7 @@ qed-.
 
 (* Advanced properties ******************************************************)
 
-lemma ssta_cprs_dxprs: ∀h,g,L,T1,T,T2,l. ⦃h, L⦄ ⊢ T1 •[g, l+1] T → 
+lemma ssta_cprs_dxprs: ∀h,g,L,T1,T,T2,l. ⦃h, L⦄ ⊢ T1 •[g, l+1] T →
                        L ⊢ T ➡* T2 → ⦃h, L⦄ ⊢ T1 •*➡*[g] T2.
 /3 width=3/ qed.
 
index b65cd73f5dd237e261689d8aae9f4abd6b7782de..9d4d954b8d25f16ab604a9f89b556a3f0fa289b8 100644 (file)
@@ -48,7 +48,7 @@ lemma fprs_lift: ∀K1,K2,T1,T2. ⦃K1, T1⦄ ➡* ⦃K2, T2⦄ →
   elim (IHT1 … HLK1 … HTU1 HTU) -K1 -T1 #L #HU1 #HKL
   elim (fpr_lift … HT2 … HKL … HTU HTU2) -K -T -T2 /3 width=4/
 ]
-qed-.  
+qed-.
 
 (* Advanced inversion lemmas ************************************************)
 
index 92ed705fe88c4fc354131b0bf690b246d8d30996..9979efb4ec9b9dd1a575e6eff34b28837468e1b0 100644 (file)
@@ -58,7 +58,7 @@ qed-.
 
 lemma lsubsv_inv_pair1: ∀h,g,I,K1,L2,V1. h ⊢ K1. ⓑ{I} V1 ⊩:⊑[g] L2 →
                         (∃∃K2. h ⊢ K1 ⊩:⊑[g] K2 & L2 = K2. ⓑ{I} V1) ∨
-                        ∃∃K2,W1,W2,l. ⦃h, K1⦄ ⊩ V1 :[g] & ⦃h, K1⦄ ⊢ V1 •[g,l+1] W1 & 
+                        ∃∃K2,W1,W2,l. ⦃h, K1⦄ ⊩ V1 :[g] & ⦃h, K1⦄ ⊢ V1 •[g,l+1] W1 &
                                       K1 ⊢ W2 ⬌* W1 & ⦃h, K2⦄ ⊩ W2 :[g] &
                                       h ⊢ K1 ⊩:⊑[g] K2 & L2 = K2. ⓛW2 & I = Abbr.
 /2 width=3 by lsubsv_inv_pair1_aux/ qed-.
index 982d7edaf79447cab44d057dd7478e75fab00b19..538de033461a8d9acd590a6d9e65564bb479e1eb 100644 (file)
@@ -96,7 +96,7 @@ lemma snv_inv_appl: ∀h,g,L,V,T. ⦃h, L⦄ ⊩ ⓐV.T :[g] →
 /2 width=3/ qed-.
 
 fact snv_inv_cast_aux: ∀h,g,L,X. ⦃h, L⦄ ⊩ X :[g] → ∀W,T. X = ⓝW.T →
-                       ∃∃U,l. ⦃h, L⦄ ⊩ W :[g] & ⦃h, L⦄ ⊩ T :[g] & 
+                       ∃∃U,l. ⦃h, L⦄ ⊩ W :[g] & ⦃h, L⦄ ⊩ T :[g] &
                               ⦃h, L⦄ ⊢ T •[g, l + 1] U & L ⊢ U ⬌* W.
 #h #g #L #X * -L -X
 [ #L #k #W #T #H destruct
@@ -123,6 +123,6 @@ lemma snv_fwd_ssta: ∀h,g,L,T. ⦃h, L⦄ ⊩ T :[g] → ∃∃U,l. ⦃h, L⦄
   ]
 | #a #I #L #V #T #_ #_ #_ * /3 width=3/
 | #a #L #V #W #W1 #T0 #T1 #l #_ #_ #_ #_ #_ #_ * /3 width=3/
-| #L #W #T #U #l #_ #_ #HTU #_ #_ #_ /3 width=3/ (**) (* auto fails without the last #_ *) 
+| #L #W #T #U #l #_ #_ #HTU #_ #_ #_ /3 width=3/ (**) (* auto fails without the last #_ *)
 ]
 qed-.
index c17f7e071f1bb650b4a86ed4bcecf82a3c9665ce..ba47b1e47d5bbecc5a21ebed16f77f7fd3638b6a 100644 (file)
@@ -74,4 +74,4 @@ fact snv_ltpr_tpr_aux: ∀h,g,L0,T0.
     elim (IH3 … HVW1 … HL12 … HV12) // [2: /2 width=1/ ] -HV1 -HVW1 -HV12 #W200 #HVW200 #H
     lapply (cpcs_trans … HW210 … H) -W10 #HW200
     lapply (lsubsv_snv_trans … HT2 (L2.ⓓV2) ?) -L1 -HT2 /2 width=1/ /2 width=4/
-  | 
\ No newline at end of file
+  |
\ No newline at end of file
index f32e1ba015eba4646014b948a8751fecdff80769..f6d753d22437d2353792872760b626f6de3ede14 100644 (file)
@@ -47,7 +47,7 @@ fact snv_ssta_aux: ∀h,g,L0,T0.
   elim (cprs_inv_abst … HU02 Abst W0) -HU02 #HW02 #_
   lapply (cprs_trans … HW10 … HW02) -W0 /3 width=10 by snv_appl, ex2_intro/ (**) (* auto is too slow without trace *)
 | #W1 #T1 #HL0 #HT0 #H1 #X #l #H2 destruct -IH3 -IH2
-  elim (snv_inv_cast … H1) -H1 #U1 #l0 #HW1 #HT1 #HTU1 #HUW1 
+  elim (snv_inv_cast … H1) -H1 #U1 #l0 #HW1 #HT1 #HTU1 #HUW1
   lapply (ssta_inv_cast1 … H2) -H2 /3 width=5/
 ]
 qed-.
index a82640426b98505984e5eca2427fdb2a0ee05cfe..131aa1c49707fa90609d9e96e6123f66c19caf9e 100644 (file)
@@ -102,7 +102,7 @@ fact ssta_ltpr_tpr_aux: ∀h,g,L0,T0.
     elim (IH1 … HTU0 (L2.ⓓW2) … HT02) -IH1 -HTU0 // [2,3: /2 width=1/ ] -T0 -HL12 #U2 #HTU2 #HU02
     lapply (cpcs_bind2 … W0 … HU02 b) -HU02 [ /2 width=1/ ] #HU02
     lapply (cpcs_flat … V1 V0 … HU02 Appl) [ /2 width=1/ ] -HV10 -HU02 #HU02
-    lapply (cpcs_cpr_strap1 … HU02 (ⓓ{b}W2.ⓐV2.U2) ?) -HU02 [ /3 width=3/ ] -V0 -HW02 /4 width=3/ 
+    lapply (cpcs_cpr_strap1 … HU02 (ⓓ{b}W2.ⓐV2.U2) ?) -HU02 [ /3 width=3/ ] -V0 -HW02 /4 width=3/
   ]
 | #U0 #T1 #HL0 #HT0 #H1 #X2 #l #H2 #L2 #HL12 #X3 #H3 destruct -IH3 -IH2
   elim (snv_inv_cast … H1) -H1 #T0 #l0 #_ #HT1 #HT10 #_
index 8b2259daca1cfad13b07a65019b6bd5cfe3f5b59..44d59982cf6868920ca4204a458a0584a8051748 100644 (file)
@@ -87,7 +87,7 @@ lemma cpr_div: ∀L,T1,T. L ⊢ T1 ➡ T → ∀T2. L ⊢ T2 ➡ T → L ⊢ T1
 lemma cpcs_cpr_conf: ∀L,T1,T. L ⊢ T ➡ T1 → ∀T2. L ⊢ T ⬌* T2 → L ⊢ T1 ⬌* T2.
 /3 width=3/ qed.
 
-lemma cpcs_tpss_strap1: ∀L,T1,T. L ⊢ T1 ⬌* T → 
+lemma cpcs_tpss_strap1: ∀L,T1,T. L ⊢ T1 ⬌* T →
                         ∀T2,d,e. L ⊢ T ▶* [d, e] T2 → L ⊢ T1 ⬌* T2.
 #L #T1 #T #HT1 #T2 #d #e #HT2
 @(cpcs_cpr_strap1 … HT1) -T1 /2 width=3/
@@ -103,7 +103,7 @@ qed-.
             clear_pc3_trans pc3_ind_left
             pc3_head_1 pc3_head_2 pc3_head_12 pc3_head_21
             pc3_pr2_fsubst0 pc3_pr2_fsubst0_back pc3_fsubst0
-*)   
+*)
 (* Basic_1: removed local theorems 6:
             pc3_left_pr3 pc3_left_trans pc3_left_sym pc3_left_pc3 pc3_pc3_left
             pc3_wcpr0_t_aux
index 35dcf5fc33be9a8c91e32f34bf2fac432f51ba0b..a31853a7f301c6533ddf382ed0d19be0936dfc83 100644 (file)
@@ -215,7 +215,7 @@ lemma cpcs_bind1: ∀I,L,V1,T1,T2. L.ⓑ{I}V1 ⊢ T1 ⬌* T2 → ∀V2. L ⊢ V1
 * /2 width=1/ /2 width=2/
 qed.
 
-lemma cpcs_bind2: ∀L,V1,V2. L ⊢ V1 ⬌* V2 → ∀I,T1,T2. L.ⓑ{I}V2 ⊢ T1 ⬌* T2 → 
+lemma cpcs_bind2: ∀L,V1,V2. L ⊢ V1 ⬌* V2 → ∀I,T1,T2. L.ⓑ{I}V2 ⊢ T1 ⬌* T2 →
                   ∀a. L ⊢ ⓑ{a,I}V1. T1 ⬌* ⓑ{a,I}V2. T2.
 #L #V1 #V2 #HV12 * /2 width=1/ /2 width=2/
 qed.
index bbdc8e7d09555bb6fad776196ffb37464c21922f..66e54a9095bdbd8578f82f61ee9b4b0435edfc48 100644 (file)
@@ -43,4 +43,3 @@ lemma shift_inj: ∀L1,L2. ∀T1,T2:term. L1 @@ T1 = L2 @@ T2 → |L1| = |L2| 
   ]
 ]
 qed-.
-  
\ No newline at end of file
index 0916ac9e3ea0d717468e8bca37d8bb929f01c0f8..c7d7ac9ca860277e4cb24d3101fa6def804baf81 100644 (file)
@@ -85,7 +85,7 @@ qed-.
 lemma length_inv_pos_dx_append: ∀d,L. |L| = d + 1 →
                                 ∃∃I,K,V. |K| = d & L = ⋆.ⓑ{I}V @@ K.
 #d @(nat_ind_plus … d) -d
-[ #L #H 
+[ #L #H
   elim (length_inv_pos_dx … H) -H #I #K #V #H
   >(length_inv_zero_dx … H) -H #H destruct
   @ex2_3_intro [4: /2 width=2/ |5: // |1,2,3: skip ] (**) (* /3/ does not work *)
index 11bd6822e8e726dd8194f013da5ddaae23792f05..ea916e10acc9f85db89b421e2c5b5aaa505930c1 100644 (file)
@@ -80,7 +80,7 @@ lemma lpx_inv_append1: ∀R,L1,K1,L. lpx R (K1 @@ L1) L →
                        ∃∃K2,L2. lpx R K1 K2 & lpx R L1 L2 & L = K2 @@ L2.
 #R #L1 elim L1 -L1 normalize
 [ #K1 #K2 #HK12
-  @(ex3_2_intro … K2 (⋆)) // (**) (* explicit constructor, /2 width=5/ does not work *) 
+  @(ex3_2_intro … K2 (⋆)) // (**) (* explicit constructor, /2 width=5/ does not work *)
 | #L1 #I #V1 #IH #K1 #X #H
   elim (lpx_inv_pair1 … H) -H #L #V2 #H1 #HV12 #H destruct
   elim (IH … H1) -IH -H1 #K2 #L2 #HK12 #HL12 #H destruct
@@ -92,13 +92,13 @@ lemma lpx_inv_append2: ∀R,L2,K2,L. lpx R L (K2 @@ L2) →
                        ∃∃K1,L1. lpx R K1 K2 & lpx R L1 L2 & L = K1 @@ L1.
 #R #L2 elim L2 -L2 normalize
 [ #K2 #K1 #HK12
-  @(ex3_2_intro … K1 (⋆)) // (**) (* explicit constructor, /2 width=5/ does not work *) 
+  @(ex3_2_intro … K1 (⋆)) // (**) (* explicit constructor, /2 width=5/ does not work *)
 | #L2 #I #V2 #IH #K2 #X #H
   elim (lpx_inv_pair2 … H) -H #L #V1 #H1 #HV12 #H destruct
   elim (IH … H1) -IH -H1 #K1 #L1 #HK12 #HL12 #H destruct
   @(ex3_2_intro … HK12) [2: /2 width=2/ | skip | // ] (* explicit constructor, /3 width=5/ does not work *)
 ]
-qed-.   
+qed-.
 
 (* Basic properties *********************************************************)
 
@@ -126,7 +126,7 @@ lemma lpx_conf: ∀R. confluent ? R → confluent … (lpx R).
 ]
 qed.
 
-lemma lpx_TC_inj: ∀R,L1,L2. lpx R L1 L2 → lpx (TC … R) L1 L2. 
+lemma lpx_TC_inj: ∀R,L1,L2. lpx R L1 L2 → lpx (TC … R) L1 L2.
 #R #L1 #L2 #H elim H -L1 -L2 // /3 width=1/
 qed.
 
index 5ccb5e4accdf9482813b9fe5c8ecb203c46608b9..9e6e55ed00d70cf598d1a827fb14ef0a0847040e 100644 (file)
@@ -104,7 +104,7 @@ lemma eq_false_inv_tpair_sn: ∀I,V1,T1,V2,T2.
                              (V1 = V2 → ⊥) ∨ (V1 = V2 ∧ (T1 = T2 → ⊥)).
 #I #V1 #T1 #V2 #T2 #H
 elim (term_eq_dec V1 V2) /3 width=1/ #HV12 destruct
-@or_intror @conj // #HT12 destruct /2 width=1/ 
+@or_intror @conj // #HT12 destruct /2 width=1/
 qed-.
 
 lemma eq_false_inv_tpair_dx: ∀I,V1,T1,V2,T2.
index 95c01d19fd18be493ab1593e40b5fbd55218068b..e1e3c4386b048c609d7a88f10b8e95d831d7dac2 100644 (file)
@@ -30,7 +30,7 @@ lemma cfpr_refl: ∀L. bi_reflexive … (cfpr L).
 /2 width=1/ qed.
 
 lemma fpr_cfpr: ∀L1,L2,T1,T2. ⦃L1, T1⦄ ➡ ⦃L2, T2⦄ → ⋆ ⊢ ⦃L1, T1⦄ ➡ ⦃L2, T2⦄.
-#L1 #L2 #T1 #T2 * /3 width=1/ 
+#L1 #L2 #T1 #T2 * /3 width=1/
 qed.
 
 (* Basic inversion lemmas ***************************************************)
@@ -47,7 +47,7 @@ lemma fpr_inv_pair1_sn: ∀I,K1,L2,V1,T1,T2. ⦃⋆.ⓑ{I}V1@@K1, T1⦄ ➡ ⦃L
                                  L2 = ⋆.ⓑ{I}V2@@K2.
 #I1 #K1 #L2 #V1 #T1 #T2 * >append_length #H
 elim (length_inv_pos_sn_append … H) -H #I2 #K2 #V2 #HK12 #H destruct
->shift_append_assoc >shift_append_assoc normalize in ⊢ (%→?); #H 
+>shift_append_assoc >shift_append_assoc normalize in ⊢ (%→?); #H
 elim (tpr_inv_bind1 … H) -H *
 [ #V0 #T #T0 #HV10 #HT1 #HT0 #H destruct /5 width=5/
 | #T0 #_ #_ #H destruct
index 4c9b8ac9736415a277978dd25d0a15ef9b0acc33..72802e499ba9149ae2400f2244b31d2123e4eaea 100644 (file)
@@ -22,6 +22,6 @@ include "basic_2/reducibility/cfpr_cpr.ma".
 lemma aaa_fpr_conf: ∀L1,T1,A. L1 ⊢ T1 ⁝ A →
                     ∀L2,T2. ⦃L1, T1⦄ ➡ ⦃L2, T2⦄ → L2 ⊢ T2 ⁝ A.
 #L1 #T1 #A #HT1 #L2 #T2 #H
-elim (fpr_inv_all … H) -H 
+elim (fpr_inv_all … H) -H
 /4 width=5 by aaa_cpr_conf, aaa_ltpr_conf, aaa_ltpss_sn_conf/
 qed.
index 785aefd5178dadb64d0ea1f9bfe8075c5952b4bf..66e102e63c4799fc12052d47b271f6b9593c215f 100644 (file)
@@ -26,7 +26,7 @@ lemma cfpr_inv_pair1: ∀I,L,K1,L2,V1,T1,T2. L ⊢ ⦃⋆.ⓑ{I}V1@@K1, T1⦄ 
                                  L2 = ⋆.ⓑ{I}V2@@K2.
 * #L #K1 #L2 #V1 #T1 #T2 * >append_length #H
 elim (length_inv_pos_sn_append … H) -H #I2 #K2 #V2 #HK12 #H destruct
->shift_append_assoc >shift_append_assoc normalize in ⊢ (??%%→?); #H 
+>shift_append_assoc >shift_append_assoc normalize in ⊢ (??%%→?); #H
 [ elim (cpr_inv_abbr1 … H) -H *
   [ #V #V0 #T0 #HV1 #HV0 #HT10 #H destruct /3 width=7/
   | #T0 #_ #_ #H destruct
index 0ea9d519b71911f801e2daf417e6a850851e92cd..0a536a914c9e3677244650481ed792b3f9b6cc05 100644 (file)
@@ -38,7 +38,7 @@ lemma cif_inv_bind: ∀a,I,L,V,T. L ⊢ 𝐈⦃ⓑ{a,I}V.T⦄ →
 #a * [ elim a -a ]
 [ #L #V #T #H elim (H ?) -H /3 width=1/
 |*: #L #V #T #H elim (cif_inv_ib2 … H) -H /2 width=1/ /3 width=1/
-]  
+]
 qed-.
 
 lemma cif_inv_appl: ∀L,V,T. L ⊢ 𝐈⦃ⓐV.T⦄ → ∧∧ L ⊢ 𝐈⦃V⦄ & L ⊢ 𝐈⦃T⦄ & 𝐒⦃T⦄.
index 51ce95aa066356cb2f94e304e38727f00d6aa7b3..8ee507cc14c1fa421326b2982f258bf56d0c79e3 100644 (file)
@@ -96,7 +96,7 @@ lemma cnf_crf_false: ∀L,T. L ⊢ 𝐑⦃T⦄ → L ⊢ 𝐍⦃T⦄ → ⊥.
 | #a #L #V #W #T #H
   elim (cnf_inv_appl … H) -H #_ #_ #H
   elim (simple_inv_bind … H)
-| #a #L #V #W #T #H 
+| #a #L #V #W #T #H
   elim (cnf_inv_appl … H) -H #_ #_ #H
   elim (simple_inv_bind … H)
 ]
index ae8e01bbc027503d67d5fcad7b851b519e981eef..56e10d39298ba758cdcda4a13a14c29df62424a5 100644 (file)
@@ -41,7 +41,7 @@ lemma cpr_refl: ∀L,T. L ⊢ T ➡ T.
 /2 width=1/ qed.
 
 (* Note: new property *)
-(* Basic_1: was only: pr2_thin_dx *) 
+(* Basic_1: was only: pr2_thin_dx *)
 lemma cpr_flat: ∀I,L,V1,V2,T1,T2.
                 L ⊢ V1 ➡ V2 → L ⊢ T1 ➡ T2 → L ⊢ ⓕ{I} V1. T1 ➡ ⓕ{I} V2. T2.
 #I #L #V1 #V2 #T1 #T2 * #V #HV1 #HV2 * /3 width=5/
@@ -56,7 +56,7 @@ qed.
 (* Basic_1: was only: pr2_change *)
 lemma cpr_lsubs_trans: ∀L1,T1,T2. L1 ⊢ T1 ➡ T2 →
                        ∀L2. L2 ≼ [0, |L1|] L1 → L2 ⊢ T1 ➡ T2.
-#L1 #T1 #T2 * #T #HT1 #HT2 #L2 #HL12 
+#L1 #T1 #T2 * #T #HT1 #HT2 #L2 #HL12
 lapply (tpss_lsubs_trans … HT2 … HL12) -HT2 -HL12 /3 width=4/
 qed.
 
@@ -103,7 +103,7 @@ elim (tpr_fwd_shift1 … H1) -H1 #L0 #T0 #HL10 #H destruct
 elim (tpss_fwd_shift1 … H2) -H2 #L2 #T2 #HL02 #H destruct /2 width=4/
 qed-.
 
-(* Basic_1: removed theorems 6: 
+(* Basic_1: removed theorems 6:
             pr2_head_2 pr2_cflat pr2_gen_cflat clear_pr2_trans
             pr2_gen_ctail pr2_ctail
    Basic_1: removed local theorems 3:
index f7738a2471b379f99bd9af5b834292138c1796a7..d0738e4c40722b47def8552e7f26bac835866eeb 100644 (file)
@@ -35,7 +35,7 @@ lapply (tpss_inv_SO2 … HT0) -HT0 #HT0
 @ex2_intro [2: @(tpr_delta … HV12 HT1 HT0) | skip | /2 width=1/ ] (**) (* /3 width=5/ is too slow *)
 qed.
 
-(* Basic_1: was only: pr2_head_1 *) 
+(* Basic_1: was only: pr2_head_1 *)
 lemma cpr_pair_sn: ∀I,L,V1,V2,T1,T2. L ⊢ V1 ➡ V2 → T1 ➡ T2 →
                    L ⊢ ②{I} V1. T1 ➡ ②{I} V2. T2.
 * /2 width=1/ /3 width=1/
@@ -56,7 +56,7 @@ qed-.
 theorem cpr_conf: ∀L,U0,T1,T2. L ⊢ U0 ➡ T1 → L ⊢ U0 ➡ T2 →
                   ∃∃T. L ⊢ T1 ➡ T & L ⊢ T2 ➡ T.
 #L #U0 #T1 #T2 * #U1 #HU01 #HUT1 * #U2 #HU02 #HUT2
-elim (tpr_conf … HU01 HU02) -U0 #U #HU1 #HU2 
+elim (tpr_conf … HU01 HU02) -U0 #U #HU1 #HU2
 elim (tpr_tpss_ltpr ? L … HU1 … HUT1) -U1 // #U1 #HTU1 #HU1
 elim (tpr_tpss_ltpr ? L … HU2 … HUT2) -U2 // #U2 #HTU2 #HU2
 elim (tpss_conf_eq … HU1 … HU2) -U /3 width=5/
index 9dc995fc79e35fa9723ffb1dcd7dc3991acff5a3..f798d566b9d9618847f2e049a8e8ef1f1be69e9b 100644 (file)
@@ -22,7 +22,7 @@ include "basic_2/reducibility/cfpr_cpr.ma".
 lemma fpr_lfpr: ∀L1,L2,T1,T2. ⦃L1, T1⦄ ➡ ⦃L2, T2⦄ → ⦃L1⦄ ➡ ⦃L2⦄.
 #L1 #L2 #T1 #T2 #H
 elim (fpr_inv_all … H) -H /2 width=3/
-qed. 
+qed.
 
 (* Inversion lemmas on context-free parallel reduction for closures *********)
 
index 8237623567098f502f634b00e0839a4aa52b34fa..79ffb7c9ed4ce6e1039cdade4339329b197c2a32 100644 (file)
@@ -19,7 +19,7 @@ include "basic_2/reducibility/ltpr_ltpss_dx.ma".
 
 (* Properties on sn parallel unfold on local environments *******************)
 
-(* Note: this can also be proved like ltpr_ltpss_dx_conf *) 
+(* Note: this can also be proved like ltpr_ltpss_dx_conf *)
 lemma ltpr_ltpss_sn_conf: ∀L1,K1,d,e. L1 ⊢ ▶* [d, e] K1 → ∀L2. L1 ➡ L2 →
                           ∃∃K2. L2 ⊢ ▶* [d, e] K2 & K1 ➡ K2.
 #L1 #K1 #d #e #H
index 735836d0e949c920469ad120d6b8417036695b9d..f04b1d9722db49b842220ad6f69d175d60ea7d3f 100644 (file)
@@ -234,5 +234,5 @@ qed-.
 
 (* Basic_1: removed theorems 3:
             pr0_subst0_back pr0_subst0_fwd pr0_subst0
-*)   
+*)
 (* Basic_1: removed local theorems: 1: pr0_delta_tau *)
index 99e621d15dfaed4d2a5c20c1f1abbb1f0f022fb4..8e91abc6acd5048b454fa169e97ef74673b56e72 100644 (file)
@@ -24,4 +24,4 @@ lemma tpr_delift_conf: ∀U1,U2. U1 ➡ U2 → ∀L,T1,d,e. L ⊢ ▼*[d, e] U1
 #U1 #U2 #HU12 #L #T1 #d #e * #W1 #HUW1 #HTW1
 elim (tpr_tpss_conf … HU12 … HUW1) -U1 #U1 #HWU1 #HU21
 elim (tpr_inv_lift1 … HWU1 … HTW1) -W1 /3 width=5/
-qed. 
+qed.
index efe1222612fb0b70de8d5fe0813eb7ef46587b52..c12f38cf42d482fd8db1e695178137535cb95de4 100644 (file)
@@ -199,7 +199,7 @@ qed.
 (* Basic_1: was: pr0_confluence *)
 theorem tpr_conf: ∀T0:term. ∀T1,T2. T0 ➡ T1 → T0 ➡ T2 →
                   ∃∃T. T1 ➡ T & T2 ➡ T.
-#T0 @(f_ind … tw … T0) -T0 #n #IH * 
+#T0 @(f_ind … tw … T0) -T0 #n #IH *
 [ #I #_ #X1 #X2 #H1 #H2 -n
   >(tpr_inv_atom1 … H1) -X1
   >(tpr_inv_atom1 … H2) -X2
@@ -215,13 +215,13 @@ theorem tpr_conf: ∀T0:term. ∀T1,T2. T0 ➡ T1 → T0 ➡ T2 →
     |2,4: #T2 #HT02 #HXT2 #H21 #H22
     ] destruct
 (* case 2: delta, delta *)
-    [ /3 width=11 by tpr_conf_delta_delta/ (**) (* /3 width=11/ is too slow *)   
+    [ /3 width=11 by tpr_conf_delta_delta/ (**) (* /3 width=11/ is too slow *)
 (* case 3: zeta, delta (repeated) *)
     | @ex2_commute /3 width=10 by tpr_conf_delta_zeta/
 (* case 4: delta, zeta *)
     | /3 width=10 by tpr_conf_delta_zeta/ (**) (* /3 width=10/ is too slow *)
 (* case 5: zeta, zeta *)
-    | /3 width=9 by tpr_conf_zeta_zeta/ (**) (* /3 width=9/ is too slow *)    
+    | /3 width=9 by tpr_conf_zeta_zeta/ (**) (* /3 width=9/ is too slow *)
     ]
   | elim (tpr_inv_flat1 … H1) -H1 *
     [ #V1 #T1 #HV01 #HT01 #H1
index aadc0c80eda75d15ea3e4de9762ab20ff269e4f0..ff5cfb6a161b11f3f6c8dccb2d43a7367baaf45f 100644 (file)
@@ -88,4 +88,4 @@ qed.
 lemma tpr_tpss_conf: ∀T1,T2. T1 ➡ T2 →
                      ∀L,U1,d,e. L ⊢ T1 ▶* [d, e] U1 →
                      ∃∃U2. U1 ➡ U2 & L ⊢ T2 ▶* [d, e] U2.
-/2 width=5/ qed. 
+/2 width=5/ qed.
index 63143b19b00e7f2012fe6fcdd492ac9e4c069de4..d6737a8ba73a519239d7db788aeee253a8aa67a6 100644 (file)
@@ -82,7 +82,7 @@ definition sd_SO: ∀h. nat → sd h ≝ λh,k. mk_sd h (deg_SO h k) ….
 qed.
 
 let rec sd_l (h:sh) (k:nat) (l:nat) on l : sd h ≝
-   match l with 
+   match l with
    [ O   ⇒ sd_O h
    | S l ⇒ match l with
            [ O ⇒ sd_SO h k
index ccc9ecc9d3214a785c419b8c5579aaf54bdef9a5..48ac6a400ca6a753fc8d72abbecaa8d630dd6aea 100644 (file)
@@ -106,7 +106,7 @@ lemma ssta_ltpss_dx_tps_conf: ∀h,g,L1,T1,U1,l. ⦃h, L1⦄ ⊢ T1 •[g, l] U1
                               ∀L2,d,e. L1 ▶* [d, e] L2 →
                               ∀T2. L2 ⊢ T1 ▶ [d, e] T2 →
                               ∃∃U2. ⦃h, L2⦄ ⊢ T2 •[g, l] U2 &
-                                   L2 ⊢ U1 ▶* [d, e] U2.
+                                    L2 ⊢ U1 ▶* [d, e] U2.
 /3 width=5/ qed.
 
 lemma ssta_ltpss_dx_conf: ∀h,g,L1,T,U1,l. ⦃h, L1⦄ ⊢ T •[g, l] U1 →
index 218389e1ce7fd2a322d1b0835bd20d6b4aa017ac..ba2be29cc499f7d1aa5d134dde5385e7f0357afc 100644 (file)
@@ -22,7 +22,7 @@ inductive gdrop (e:nat): relation genv ≝
 | gdrop_lt: ∀I,G1,G2,V. e < |G1| → gdrop e G1 G2 → gdrop e (G1. ⓑ{I} V) G2
 .
 
-interpretation "global slicing" 
+interpretation "global slicing"
    'RDrop e G1 G2 = (gdrop e G1 G2).
 
 (* basic inversion lemmas ***************************************************)
index 12b30e69398d1035163bf6ee69aca30b6d9c7143..87d83b3472819ccaea16949e8b61ab8afb4352d1 100644 (file)
@@ -81,7 +81,7 @@ lemma ldrop_inv_atom1: ∀d,e,L2. ⇩[d, e] ⋆ ≡ L2 → L2 = ⋆.
 /2 width=5/ qed-.
 
 fact ldrop_inv_O1_aux: ∀d,e,L1,L2. ⇩[d, e] L1 ≡ L2 → d = 0 →
-                       ∀K,I,V. L1 = K. ⓑ{I} V → 
+                       ∀K,I,V. L1 = K. ⓑ{I} V →
                        (e = 0 ∧ L2 = K. ⓑ{I} V) ∨
                        (0 < e ∧ ⇩[d, e - 1] K ≡ L2).
 #d #e #L1 #L2 * -d -e -L1 -L2
@@ -114,7 +114,7 @@ qed-.
 fact ldrop_inv_skip1_aux: ∀d,e,L1,L2. ⇩[d, e] L1 ≡ L2 → 0 < d →
                           ∀I,K1,V1. L1 = K1. ⓑ{I} V1 →
                           ∃∃K2,V2. ⇩[d - 1, e] K1 ≡ K2 &
-                                   ⇧[d - 1, e] V2 ≡ V1 & 
+                                   ⇧[d - 1, e] V2 ≡ V1 &
                                    L2 = K2. ⓑ{I} V2.
 #d #e #L1 #L2 * -d -e -L1 -L2
 [ #d #e #_ #I #K #V #H destruct
@@ -127,14 +127,14 @@ qed.
 (* Basic_1: was: drop_gen_skip_l *)
 lemma ldrop_inv_skip1: ∀d,e,I,K1,V1,L2. ⇩[d, e] K1. ⓑ{I} V1 ≡ L2 → 0 < d →
                        ∃∃K2,V2. ⇩[d - 1, e] K1 ≡ K2 &
-                                ⇧[d - 1, e] V2 ≡ V1 & 
+                                ⇧[d - 1, e] V2 ≡ V1 &
                                 L2 = K2. ⓑ{I} V2.
 /2 width=3/ qed-.
 
 fact ldrop_inv_skip2_aux: ∀d,e,L1,L2. ⇩[d, e] L1 ≡ L2 → 0 < d →
                           ∀I,K2,V2. L2 = K2. ⓑ{I} V2 →
                           ∃∃K1,V1. ⇩[d - 1, e] K1 ≡ K2 &
-                                   ⇧[d - 1, e] V2 ≡ V1 & 
+                                   ⇧[d - 1, e] V2 ≡ V1 &
                                    L1 = K1. ⓑ{I} V1.
 #d #e #L1 #L2 * -d -e -L1 -L2
 [ #d #e #_ #I #K #V #H destruct
@@ -171,7 +171,7 @@ qed.
 lemma ldrop_O1_le: ∀i,L. i ≤ |L| → ∃K. ⇩[0, i] L ≡ K.
 #i @(nat_ind_plus … i) -i /2 width=2/
 #i #IHi *
-[ #H lapply (le_n_O_to_eq … H) -H >commutative_plus normalize #H destruct 
+[ #H lapply (le_n_O_to_eq … H) -H >commutative_plus normalize #H destruct
 | #L #I #V normalize #H
   elim (IHi L ?) -IHi /2 width=1/ -H /3 width=2/
 ]
@@ -264,7 +264,7 @@ lemma ldrop_fwd_lw: ∀L1,L2,d,e. ⇩[d, e] L1 ≡ L2 → ♯{L2} ≤ ♯{L1}.
 | #L1 #L2 #I #V1 #V2 #d #e #_ #HV21 #IHL12
   >(tw_lift … HV21) -HV21 /2 width=1/
 ]
-qed-. 
+qed-.
 
 lemma ldrop_pair2_fwd_fw: ∀I,L,K,V,d,e. ⇩[d, e] L ≡ K. ⓑ{I} V →
                           ∀T. ♯{K, V} < ♯{L, T}.
@@ -298,7 +298,7 @@ lemma ldrop_fwd_O1_length: ∀L1,L2,e. ⇩[0, e] L1 ≡ L2 → |L2| = |L1| - e.
 qed-.
 
 (* Basic_1: removed theorems 50:
-            drop_ctail drop_skip_flat 
+            drop_ctail drop_skip_flat
             cimp_flat_sx cimp_flat_dx cimp_bind cimp_getl_conf
             drop_clear drop_clear_O drop_clear_S
             clear_gen_sort clear_gen_bind clear_gen_flat clear_gen_flat_r
index 38244e6be64891519c1879c9bbb09c8ba81dc806..a122f9d452c4fda173f0b878e606b70208067a28 100644 (file)
@@ -18,7 +18,7 @@ include "basic_2/substitution/ldrop.ma".
 
 (* Properties on append for local environments ******************************)
 
-fact ldrop_O1_append_sn_le_aux: ∀L1,L2,d,e. ⇩[d, e] L1 ≡ L2 → 
+fact ldrop_O1_append_sn_le_aux: ∀L1,L2,d,e. ⇩[d, e] L1 ≡ L2 →
                                 d = 0 → e ≤ |L1| →
                                 ∀L. ⇩[0, e] L @@ L1 ≡ L @@ L2.
 #L1 #L2 #d #e #H elim H -L1 -L2 -d -e normalize // /4 width=1/
@@ -61,4 +61,4 @@ lemma ldrop_O1_inv_append1_le: ∀K,L1,L2,e. ⇩[0, e] L1 @@ L2 ≡ K → e ≤
     <minus_plus_m_m /2 width=4/
   ]
 ]
-qed-. 
+qed-.
index 07d9c53e41d586f76216b82740190443e3848790..ccbf607eafced3df6d61c56517d28cfa33142c90 100644 (file)
@@ -80,7 +80,7 @@ qed.
 
 (* Note: apparently this was missing in basic_1 *)
 theorem ldrop_conf_le: ∀L0,L1,d1,e1. ⇩[d1, e1] L0 ≡ L1 →
-                       ∀L2,e2. ⇩[0, e2] L0 ≡ L2 → e2 ≤ d1 → 
+                       ∀L2,e2. ⇩[0, e2] L0 ≡ L2 → e2 ≤ d1 →
                        ∃∃L. ⇩[0, e2] L1 ≡ L & ⇩[d1 - e2, e1] L2 ≡ L.
 #L0 #L1 #d1 #e1 #H elim H -L0 -L1 -d1 -e1
 [ #d1 #e1 #L2 #e2 #H
index 4f4060ff166b641583c1f963fd8551f577d0bbc4..83c157a5af97bbc90e0830d30089cc2377da67eb 100644 (file)
@@ -55,7 +55,7 @@ lemma sfr_ldrop: ∀L,d,e.
   #e #_ #H0
   >(H0 I L V 0 ? ? ?) //
   /5 width=6 by sfr_abbr, ldrop_ldrop, lt_minus_to_plus_r/ (**) (* auto now too slow without trace *)
-| #d #_ #e #H0 
+| #d #_ #e #H0
   /5 width=6 by sfr_skip, ldrop_ldrop, le_S_S, lt_minus_to_plus_r/ (**) (* auto now too slow without trace *)
 ]
 qed.
index ec2cc2df5edcb18e584f4f01675fc07bd825f2c6..84babbdc8fa8c3fb48b4643952221f93e55b9323 100644 (file)
@@ -290,7 +290,7 @@ lemma lift_simple_sn: ∀d,e,T1,T2. ⇧[d, e] T1 ≡ T2 → 𝐒⦃T2⦄ → 
 #d #e #T1 #T2 #H elim H -d -e -T1 -T2 //
 #a #I #V1 #V2 #T1 #T2 #d #e #_ #_ #_ #_ #H
 elim (simple_inv_bind … H)
-qed-. 
+qed-.
 
 (* Basic properties *********************************************************)
 
@@ -394,7 +394,7 @@ lemma t_deliftable_sn_TC: ∀R. t_deliftable_sn R → t_deliftable_sn (TC … R)
   elim (IHU1 … HTU1) -U1 #T #HTU #HT1
   elim (HR … HU2 … HTU) -U /3 width=5/
 ]
-qed-. 
+qed-.
 
 (* Basic_1: removed theorems 7:
             lift_head lift_gen_head
index 81f2b49a91a044c03a9ed351db4e626493c8bec0..804c903d182a9d164e27fb7fc498ebd6f87d8d33 100644 (file)
@@ -103,9 +103,9 @@ theorem lift_mono: ∀d,e,T,U1. ⇧[d,e] T ≡ U1 → ∀U2. ⇧[d,e] T ≡ U2 
 #d #e #T #U1 #H elim H -d -e -T -U1
 [ #k #d #e #X #HX
   lapply (lift_inv_sort1 … HX) -HX //
-| #i #d #e #Hid #X #HX 
+| #i #d #e #Hid #X #HX
   lapply (lift_inv_lref1_lt … HX ?) -HX //
-| #i #d #e #Hdi #X #HX 
+| #i #d #e #Hdi #X #HX
   lapply (lift_inv_lref1_ge … HX ?) -HX //
 | #p #d #e #X #HX
   lapply (lift_inv_gref1 … HX) -HX //
index f27883b028036991a6bff9a38df2adef4075bd13..1c0756c37edbd494c076d9dfd520553bae657381 100644 (file)
@@ -42,7 +42,7 @@ lemma lsubs_bind_eq: ∀L1,L2,e. L1 ≼ [0, e] L2 → ∀I,V.
 #L1 #L2 #e #HL12 #I #V elim I -I /2 width=1/
 qed.
 
-lemma lsubs_abbr_lt: ∀L1,L2,V,e. L1 ≼ [0, e - 1] L2 → 0 < e → 
+lemma lsubs_abbr_lt: ∀L1,L2,V,e. L1 ≼ [0, e - 1] L2 → 0 < e →
                      L1. ⓓV ≼ [0, e] L2.ⓓV.
 #L1 #L2 #V #e #HL12 #He >(plus_minus_m_m e 1) // /2 width=1/
 qed.
@@ -57,7 +57,7 @@ lemma lsubs_skip_lt: ∀L1,L2,d,e. L1 ≼ [d - 1, e] L2 → 0 < d →
 #L1 #L2 #d #e #HL12 #Hd >(plus_minus_m_m d 1) // /2 width=1/
 qed.
 
-lemma lsubs_bind_lt: ∀I,L1,L2,V,e. L1 ≼ [0, e - 1] L2 → 0 < e → 
+lemma lsubs_bind_lt: ∀I,L1,L2,V,e. L1 ≼ [0, e - 1] L2 → 0 < e →
                      L1. ⓓV ≼ [0, e] L2. ⓑ{I}V.
 * /2 width=1/ qed.
 
@@ -76,7 +76,7 @@ lemma TC_lsubs_trans: ∀S,R. lsubs_trans S R → lsubs_trans S (λL. (TC … (R
 ]
 qed.
 
-(* Basic inversion lemmas ***************************************************) 
+(* Basic inversion lemmas ***************************************************)
 
 fact lsubs_inv_atom1_aux: ∀L1,L2,d,e. L1 ≼ [d, e] L2 → L1 = ⋆ →
                           L2 = ⋆ ∨ (d = 0 ∧ e = 0).
index 38b1dfe7cdda5b6d57bf265da03fdc87e6033335..2efd002981b2a0080d24f72a2ed60c1dc8741c4e 100644 (file)
@@ -203,7 +203,7 @@ qed-.
 
 fact tps_inv_bind1_aux: ∀d,e,L,U1,U2. L ⊢ U1 ▶ [d, e] U2 →
                         ∀a,I,V1,T1. U1 = ⓑ{a,I} V1. T1 →
-                        ∃∃V2,T2. L ⊢ V1 ▶ [d, e] V2 & 
+                        ∃∃V2,T2. L ⊢ V1 ▶ [d, e] V2 &
                                  L. ⓑ{I} V2 ⊢ T1 ▶ [d + 1, e] T2 &
                                  U2 = ⓑ{a,I} V2. T2.
 #d #e #L #U1 #U2 * -d -e -L -U1 -U2
@@ -215,7 +215,7 @@ fact tps_inv_bind1_aux: ∀d,e,L,U1,U2. L ⊢ U1 ▶ [d, e] U2 →
 qed.
 
 lemma tps_inv_bind1: ∀d,e,L,a,I,V1,T1,U2. L ⊢ ⓑ{a,I} V1. T1 ▶ [d, e] U2 →
-                     ∃∃V2,T2. L ⊢ V1 ▶ [d, e] V2 & 
+                     ∃∃V2,T2. L ⊢ V1 ▶ [d, e] V2 &
                               L. ⓑ{I} V2 ⊢ T1 ▶ [d + 1, e] T2 &
                               U2 = ⓑ{a,I} V2. T2.
 /2 width=3/ qed-.
@@ -280,5 +280,5 @@ qed-.
             subst0_subst0 subst0_subst0_back subst0_weight_le subst0_weight_lt
             subst0_confluence_neq subst0_confluence_eq subst0_tlt_head
             subst0_confluence_lift subst0_tlt
-            subst1_head subst1_gen_head subst1_lift_S subst1_confluence_lift 
+            subst1_head subst1_gen_head subst1_lift_S subst1_confluence_lift
 *)
index 808f6e3ba98f82a9eb1e84db0bdc0e17757e4800..1d65d8d632c76d972c77f2b1b35df2a6b21fc352 100644 (file)
@@ -19,7 +19,7 @@ include "basic_2/substitution/tps.ma".
 
 (* Advanced inversion lemmas ************************************************)
 
-fact tps_inv_S2_aux: ∀L,T1,T2,d,e1. L ⊢ T1 ▶ [d, e1] T2 → ∀e2. e1 = e2 + 1 → 
+fact tps_inv_S2_aux: ∀L,T1,T2,d,e1. L ⊢ T1 ▶ [d, e1] T2 → ∀e2. e1 = e2 + 1 →
                      ∀K,V. ⇩[0, d] L ≡ K. ⓛV → L ⊢ T1 ▶ [d + 1, e2] T2.
 #L #T1 #T2 #d #e1 #H elim H -L -T1 -T2 -d -e1
 [ //
@@ -98,7 +98,7 @@ lemma tps_lift_be: ∀K,T1,T2,dt,et. K ⊢ T1 ▶ [dt, et] T2 →
 | #K #a #I #V1 #V2 #T1 #T2 #dt #et #_ #_ #IHV12 #IHT12 #L #U1 #U2 #d #e #HLK #H1 #H2 #Hdtd #Hddet
   elim (lift_inv_bind1 … H1) -H1 #VV1 #TT1 #HVV1 #HTT1 #H1
   elim (lift_inv_bind1 … H2) -H2 #VV2 #TT2 #HVV2 #HTT2 #H2 destruct
-  @tps_bind [ /2 width=6/ | @IHT12 [3,4: // | skip |5,6: /2 width=1/ | /2 width=1/ ] 
+  @tps_bind [ /2 width=6/ | @IHT12 [3,4: // | skip |5,6: /2 width=1/ | /2 width=1/ ]
             ] (**) (* /3 width=6/ is too slow, simplification like tps_lift_le is too slow *)
 | #K #I #V1 #V2 #T1 #T2 #dt #et #_ #_ #IHV12 #IHT12 #L #U1 #U2 #d #e #HLK #H1 #H2 #Hdetd
   elim (lift_inv_flat1 … H1) -H1 #VV1 #TT1 #HVV1 #HTT1 #H1
@@ -212,7 +212,7 @@ lemma tps_inv_lift1_ge: ∀L,U1,U2,dt,et. L ⊢ U1 ▶ [dt, et] U2 →
   elim (le_inv_plus_l … Hdei) #Hdie #Hei
   lapply (lift_inv_lref2_ge … H … Hdei) -H #H destruct
   lapply (ldrop_conf_ge … HLK … HLKV ?) -L // #HKV
-  elim (lift_split … HVW d (i - e + 1) ? ? ?) -HVW [4: // |3: /2 width=1/ |2: /3 width=1/ ] -Hdei -Hdie 
+  elim (lift_split … HVW d (i - e + 1) ? ? ?) -HVW [4: // |3: /2 width=1/ |2: /3 width=1/ ] -Hdei -Hdie
   #V0 #HV10 >plus_minus // <minus_minus // /2 width=1/ <minus_n_n <plus_n_O #H
   @ex2_intro [3: @H | skip | @tps_subst [5,6: // |1,2: skip | /2 width=1/ | >plus_minus // /2 width=1/ ] ] (**) (* explicit constructor, uses monotonic_lt_minus_l *)
 | #L #a #I #V1 #V2 #U1 #U2 #dt #et #_ #_ #IHV12 #IHU12 #K #d #e #HLK #X #H #Hdetd
@@ -249,18 +249,18 @@ lemma tps_inv_lift1_eq: ∀L,U1,U2,d,e.
 ]
 qed.
 (*
-      Theorem subst0_gen_lift_rev_ge: (t1,v,u2,i,h,d:?) 
+      Theorem subst0_gen_lift_rev_ge: (t1,v,u2,i,h,d:?)
                                       (subst0 i v t1 (lift h d u2)) ->
                                       (le (plus d h) i) ->
                                       (EX u1 | (subst0 (minus i h) v u1 u2) &
-                                              t1 = (lift h d u1)
-                                     ).
+                                               t1 = (lift h d u1)
+                                      ).
 
 
       Theorem subst0_gen_lift_rev_lelt: (t1,v,u2,i,h,d:?)
                                         (subst0 i v t1 (lift h d u2)) ->
                                         (le d i) -> (lt i (plus d h)) ->
-                                       (EX u1 | t1 = (lift (minus (plus d h) (S i)) (S i) u1)).
+                                        (EX u1 | t1 = (lift (minus (plus d h) (S i)) (S i) u1)).
 *)
 lemma tps_inv_lift1_ge_up: ∀L,U1,U2,dt,et. L ⊢ U1 ▶ [dt, et] U2 →
                            ∀K,d,e. ⇩[d, e] L ≡ K → ∀T1. ⇧[d, e] T1 ≡ U1 →
index 75ce099571c1a3631b2d1ed2064511902fbec664..1b82f79e3fa75294ba48c98c2baba4da04fa3abe 100644 (file)
@@ -75,7 +75,7 @@ qed.
 
 lemma delifta_delift: ∀L,T1,T2,d,e. L ⊢ ▼▼*[d, e] T1 ≡ T2 → L ⊢ ▼*[d, e] T1 ≡ T2.
 #L #T1 #T2 #d #e #H elim H -L -T1 -T2 -d -e // /2 width=1/ /2 width=6/
-qed-. 
+qed-.
 
 lemma delift_ind_alt: ∀R:ℕ→ℕ→lenv→relation term.
                       (∀L,d,e,k. R d e L (⋆k) (⋆k)) →
index 2591509095f4d0587111c85d2ab8b99dcac5f0e6..7a654023a10ec9ff16c59d77447784d672b37fed 100644 (file)
@@ -25,7 +25,7 @@ lemma delift_lref_be: ∀L,K,V1,V2,U2,i,d,e. d ≤ i → i < d + e →
                       ⇧[0, d] V2 ≡ U2 → L ⊢ ▼*[d, e] #i ≡ U2.
 #L #K #V1 #V2 #U2 #i #d #e #Hdi #Hide #HLK * #V #HV1 #HV2 #HVU2
 elim (lift_total V 0 (i+1)) #U #HVU
-lapply (lift_trans_be … HV2 … HVU ? ?) -HV2 // >minus_plus <plus_minus_m_m /2 width=1/ #HV2U 
+lapply (lift_trans_be … HV2 … HVU ? ?) -HV2 // >minus_plus <plus_minus_m_m /2 width=1/ #HV2U
 lapply (lift_conf_be … HVU2 … HV2U ?) //
 >commutative_plus in ⊢ (??%??→?); <minus_plus_m_m /3 width=6/
 qed.
@@ -95,7 +95,7 @@ elim (tpss_inv_lref1 … HU) -HU
 qed-.
 
 lemma delift_inv_lref1: ∀L,U2,i,d,e. L ⊢ ▼*[d, e] #i ≡ U2 →
-                        ∨∨ (i < d ∧ U2 = #i) 
+                        ∨∨ (i < d ∧ U2 = #i)
                         |  (∃∃K,V1,V2. d ≤ i & i < d + e &
                                        ⇩[0, i] L ≡ K. ⓓV1 &
                                        K ⊢ ▼*[0, d + e - i - 1] V1 ≡ V2 &
index a0ac3cf479fbcb2c89c66dda8b8e4deb4ceaffc8..2954223480cfa1c4ba04e04ea9b99671465aae64 100644 (file)
@@ -28,6 +28,6 @@ qed.
 
 lemma ltpss_sn_delift_trans_eq: ∀L,K,d,e. L ⊢ ▶* [d, e] K →
                                 ∀T1,T2. K ⊢ ▼*[d, e] T1 ≡ T2 → L ⊢ ▼*[d, e] T1 ≡ T2.
-#L #K #d #e #HLK #T1 #T2 * #T #HT1 #HT2 
+#L #K #d #e #HLK #T1 #T2 * #T #HT1 #HT2
 lapply (ltpss_sn_tpss_trans_eq … HT1 … HLK) -K /2 width=3/
 qed.
index cebcf828ea1c4e944ab56971ba7b71e002c8e8b0..662ae567fed348d1997cbad36f03fc8f1ce36b04 100644 (file)
@@ -89,4 +89,4 @@ qed.
 
 lemma tps_delift_trans_eq: ∀L,U1,U2,d,e. L ⊢ U1 ▶ [d, e] U2 →
                            ∀T. L ⊢ ▼*[d, e] U2 ≡ T → L ⊢ ▼*[d, e] U1 ≡ T.
-/3 width=3/ qed.                            
+/3 width=3/ qed.
index 6138548cde489a0f34bd2c6d464b1cde337f3cde..41d18409b43e43868c69cf1274989e765559f6c3 100644 (file)
@@ -17,7 +17,7 @@ include "basic_2/unfold/gr2.ma".
 (* GENERIC RELOCATION WITH PAIRS ********************************************)
 
 inductive minuss: nat → relation (list2 nat nat) ≝
-| minuss_nil: ∀i. minuss i ⟠ ⟠ 
+| minuss_nil: ∀i. minuss i ⟠ ⟠
 | minuss_lt : ∀des1,des2,d,e,i. i < d → minuss i des1 des2 →
               minuss i ({d, e} @ des1) ({d - i, e} @ des2)
 | minuss_ge : ∀des1,des2,d,e,i. d ≤ i → minuss (e + i) des1 des2 →
@@ -46,7 +46,7 @@ fact minuss_inv_cons1_aux: ∀des1,des2,i. des1 ▭ i ≡ des2 →
                            ∃∃des0. i < d & des ▭ i ≡ des0 &
                                    des2 = {d - i, e} @ des0.
 #des1 #des2 #i * -des1 -des2 -i
-[ #i #d #e #des #H destruct 
+[ #i #d #e #des #H destruct
 | #des1 #des #d1 #e1 #i1 #Hid1 #Hdes #d2 #e2 #des2 #H destruct /3 width=3/
 | #des1 #des #d1 #e1 #i1 #Hdi1 #Hdes #d2 #e2 #des2 #H destruct /3 width=1/
 ]
@@ -67,7 +67,7 @@ elim (lt_refl_false … Hi)
 qed-.
 
 lemma minuss_inv_cons1_lt: ∀des1,des2,d,e,i. {d, e} @ des1 ▭ i ≡ des2 →
-                           i < d → 
+                           i < d →
                            ∃∃des. des1 ▭ i ≡ des & des2 = {d - i, e} @ des.
 #des1 #des2 #d #e #i #H
 elim (minuss_inv_cons1 … H) -H * /2 width=3/ #Hdi #_ #Hid
index bd8d1a9be416f9203208d8505408c1a116a2629d..82366bc72cbc7661fda759a3afeafab671b304cd 100644 (file)
@@ -35,6 +35,6 @@ lemma pluss_inv_cons2: ∀i,d,e,des2,des. des + i = {d, e} @ des2 →
                        ∃∃des1. des1 + i = des2 & des = {d - i, e} @ des1.
 #i #d #e #des2 * normalize
 [ #H destruct
-| #d1 #e1 #des1 #H destruct /2 width=3/ 
+| #d1 #e1 #des1 #H destruct /2 width=3/
 ]
 qed-.
index 6ad3ff0156d7d0defea7ff93c263897eb53d7409..0710f34aedf4b275bf8d64557fa3dbe4ef872a8b 100644 (file)
@@ -32,7 +32,7 @@ lemma lifts_lift_trans_le: ∀T1,T,des. ⇧*[des] T1 ≡ T → ∀T2. ⇧[0, 1]
 qed-.
 
 (* Basic_1: was: lift1_free (right to left) *)
-lemma lifts_lift_trans: ∀des,i,i0. @⦃i, des⦄ ≡ i0 → 
+lemma lifts_lift_trans: ∀des,i,i0. @⦃i, des⦄ ≡ i0 →
                         ∀des0. des + 1 ▭ i + 1 ≡ des0 + 1 →
                         ∀T1,T0. ⇧*[des0] T1 ≡ T0 →
                         ∀T2. ⇧[O, i0 + 1] T0 ≡ T2 →
index bbd3b1d8ba1261ca6589cd29f94fecde6880f264..7d14197474b0acad3e0aa9042cfcfc24e674f0fa 100644 (file)
@@ -23,7 +23,7 @@ include "basic_2/unfold/lifts_vector.ma".
 (* Basic_1: was: lifts1_xhg (right to left) *)
 lemma liftsv_liftv_trans_le: ∀T1s,Ts,des. ⇧*[des] T1s ≡ Ts →
                              ∀T2s:list term. ⇧[0, 1] Ts ≡ T2s →
-                             ∃∃T0s. ⇧[0, 1] T1s ≡ T0s & ⇧*[des + 1] T0s ≡ T2s. 
+                             ∃∃T0s. ⇧[0, 1] T1s ≡ T0s & ⇧*[des + 1] T0s ≡ T2s.
 #T1s #Ts #des #H elim H -T1s -Ts
 [ #T1s #H
   >(liftv_inv_nil1 … H) -T1s /2 width=3/
index 6ba09b9620108faf09d41710515511f3661ca33f..1beef1bb71603d01dddfaa463c7d48a20524cab2 100644 (file)
@@ -244,7 +244,7 @@ lemma ltpss_dx_append_ge: ∀K1,K2,d,e. K1 ▶* [d, e] K2 →
                           L1 @@ K1 ▶* [d, e] L2 @@ K2.
 #K1 #K2 #d #e #H elim H -K1 -K2 -d -e
 [ #d #e #L1 #L2 <minus_n_O //
-| #K #I #V #L1 #L2 #_ #H 
+| #K #I #V #L1 #L2 #_ #H
   lapply (le_n_O_to_eq … H) -H normalize <plus_n_Sm #H destruct
 | #K1 #K2 #I #V1 #V2 #e #_ #_ #_ #L1 #L2 #_ #H
   lapply (le_n_O_to_eq … H) -H normalize <plus_n_Sm #H destruct
index c3840c31ca5b32230df38f1869a316b715799bde..04af50c8c172c04af2a40fe313fb7dde6a7d82d0 100644 (file)
@@ -59,7 +59,7 @@ lemma ltpss_dx_tps_conf: ∀L0,T2,U2,d2,e2. L0 ⊢ T2 ▶ [d2, e2] U2 →
   elim (IHTU2 … HL01) -IHTU2 -HL01 /3 width=5/
 ]
 qed.
-  
+
 lemma ltpss_dx_tpss_trans_ge: ∀L0,T2,U2,d2,e2. L0 ⊢ T2 ▶* [d2, e2] U2 →
                               ∀L1,d1,e1. L1 ▶* [d1, e1] L0 → d1 + e1 ≤ d2 →
                               L1 ⊢ T2 ▶* [d2, e2] U2.
index 0d13a5a3f5a5f697541280d7e20b6580f0b01ced..e09cf12c53100aa5c6624edd0eb8e1fa110a4c92 100644 (file)
@@ -237,7 +237,7 @@ lemma ltpss_sn_append_ge: ∀K1,K2,d,e. K1 ⊢ ▶* [d, e] K2 →
                           L1 @@ K1 ⊢ ▶* [d, e] L2 @@ K2.
 #K1 #K2 #d #e #H elim H -K1 -K2 -d -e
 [ #d #e #L1 #L2 <minus_n_O //
-| #K #I #V #L1 #L2 #_ #H 
+| #K #I #V #L1 #L2 #_ #H
   lapply (le_n_O_to_eq … H) -H normalize <plus_n_Sm #H destruct
 | #K1 #K2 #I #V1 #V2 #e #_ #_ #_ #L1 #L2 #_ #H
   lapply (le_n_O_to_eq … H) -H normalize <plus_n_Sm #H destruct
index dda41e4c30b72e3938d59ae95394ac71928e1cc9..bc4d73f3e35b4ca1cf9feaf6e151229bba850516 100644 (file)
@@ -133,7 +133,7 @@ qed.
 
 lemma ldrop_ltpss_sn_trans_be: ∀L1,K1,d1,e1. ⇩[d1, e1] L1 ≡ K1 →
                                ∀K2,d2,e2. K1 ⊢ ▶* [d2, e2] K2 →
-                               d2 ≤ d1 → d1 ≤ d2 + e2 → 
+                               d2 ≤ d1 → d1 ≤ d2 + e2 →
                                ∃∃L2. L1 ⊢ ▶* [d2, e1 + e2] L2 &
                                      ⇩[d1, e1] L2 ≡ K2.
 #L1 #K1 #d1 #e1 #H elim H -L1 -K1 -d1 -e1
index faafb36d16c422160bdb680be2736d2f7d3f872f..ba88f64e993e94c98beb5421b11fc4b93ec5d866 100644 (file)
@@ -44,11 +44,11 @@ lemma tps_tpss: ∀L,T1,T2,d,e. L ⊢ T1 ▶ [d, e] T2 → L ⊢ T1 ▶* [d, e]
 /2 width=1/ qed.
 
 lemma tpss_strap1: ∀L,T1,T,T2,d,e.
-                   L ⊢ T1 ▶* [d, e] T → L ⊢ T ▶ [d, e] T2 → L ⊢ T1 ▶* [d, e] T2. 
+                   L ⊢ T1 ▶* [d, e] T → L ⊢ T ▶ [d, e] T2 → L ⊢ T1 ▶* [d, e] T2.
 /2 width=3/ qed.
 
 lemma tpss_strap2: ∀L,T1,T,T2,d,e.
-                   L ⊢ T1 ▶ [d, e] T → L ⊢ T ▶* [d, e] T2 → L ⊢ T1 ▶* [d, e] T2. 
+                   L ⊢ T1 ▶ [d, e] T → L ⊢ T ▶* [d, e] T2 → L ⊢ T1 ▶* [d, e] T2.
 /2 width=3/ qed.
 
 lemma tpss_lsubs_trans: ∀L1,T1,T2,d,e. L1 ⊢ T1 ▶* [d, e] T2 →
@@ -137,7 +137,7 @@ lemma tpss_inv_gref1: ∀L,T2,p,d,e. L ⊢ §p ▶* [d, e] T2 → T2 = §p.
 qed-.
 
 lemma tpss_inv_bind1: ∀d,e,L,a,I,V1,T1,U2. L ⊢ ⓑ{a,I} V1. T1 ▶* [d, e] U2 →
-                      ∃∃V2,T2. L ⊢ V1 ▶* [d, e] V2 & 
+                      ∃∃V2,T2. L ⊢ V1 ▶* [d, e] V2 &
                                L. ⓑ{I} V2 ⊢ T1 ▶* [d + 1, e] T2 &
                                U2 = ⓑ{a,I} V2. T2.
 #d #e #L #a #I #V1 #T1 #U2 #H @(tpss_ind … H) -U2
@@ -182,4 +182,3 @@ lemma tpss_fwd_shift1: ∀L,L1,T1,T,d,e. L ⊢ L1 @@ T1 ▶*[d, e] T →
   elim (tps_fwd_shift1 … H0) -H0 #L2 #T2 #HL02 #H destruct /2 width=4/
 ]
 qed-.
-  
\ No newline at end of file
index 46e064ca9fab22d5549076b3f2b5807d6986a7c4..8f77dd0d0d8e3115a3dd805428e1b1d76ac5ed0e 100644 (file)
@@ -79,7 +79,7 @@ qed.
 
 lemma tpssa_tpss: ∀L,T1,T2,d,e. L ⊢ T1 ▶▶* [d, e] T2 → L ⊢ T1 ▶* [d, e] T2.
 #L #T1 #T2 #d #e #H elim H -L -T1 -T2 -d -e // /2 width=6/
-qed-. 
+qed-.
 
 lemma tpss_ind_alt: ∀R:nat→nat→lenv→relation term.
                     (∀L,I,d,e. R d e L (⓪{I}) (⓪{I})) →
index 0a00fd9d861183ac72a3197660021376219579ed..d066adb0db0b9977beb081cdd119b9f4d953e6fe 100644 (file)
@@ -28,7 +28,7 @@ lapply (ltpss_sn_ltpssa … H) -H #H @(ltpssa_ind … H) -L2 /2 width=3/
 lapply (ltpssa_ltpss_sn … HL1) -HL1 #HL1
 lapply (ltpss_sn_dx_trans_eq … HL1 … HL2) -HL1 #HL12
 elim (IHL1 … H1) -IHL1 -H1 #U #HU1 #HTU
-elim (sstas_ltpss_dx_conf … HTU … HL2) -HTU -HL2 #U2 #H2 #HU2  
+elim (sstas_ltpss_dx_conf … HTU … HL2) -HTU -HL2 #U2 #H2 #HU2
 lapply (ltpss_sn_tpss_trans_eq … HU2 … HL12) -HU2 -HL12 #HU2
 lapply (tpss_trans_eq … HU1 HU2) -U /2 width=3/
 qed.
index c20aa4b1057f4af6976966fa0f0f3e931c1a0f65..dcee0200a54f1e1aa6747b0b7c913ec1c334e5f0 100644 (file)
    </body>
    <table name="basic_2_blk"/>
    <body>* In terms only.
-        ** In terms and local environments only.
+         ** In terms and local environments only.
          *** In global environments only.
-         **** Sort level k in terms only. 
+         **** Sort level k in terms only.
    </body>
-   
+
    <section>Summary of the Specification</section>
    <body>Here is a numerical acount of the specification's contents
          and its timeline.
    <table name="basic_2_sum"/>
    <news date="In progress.">
          Context-sensitive subject equivalence
-        for native type assignment.
+         for native type assignment.
    </news>
    <news date="In progress.">
          Closure of extended context-sensitive computation
-        for native validity.
+         for native validity.
    </news>
    <news date="In progress.">
          Extended context-sensitive strong normalization
-        for simply typed terms.
+         for simply typed terms.
    </news>
    <news date="2012 October 16.">
          Confluence for context-free parallel reduction on closures.
    </news>
    <news date="2012 July 26.">
          Term binders polarized to control ζ reduction.
-   </news>   
+   </news>
    <news date="2012 April 16.">
          Context-sensitive subject equivalence
-        for atomic arity assignment
-        (anniversary milestone).
+         for atomic arity assignment
+         (anniversary milestone).
    </news>
    <news date="2012 March 15.">
          Context-sensitive strong normalization
-        for simply typed terms.
+         for simply typed terms.
    </news>
    <news date="2012 January 27.">
          Support for abstract candidates of reducibility.
@@ -65,8 +65,8 @@
    <body>The source files are grouped in planes and components
          according to the following table.
          A notation file covering the whole specification is provided.
-        The notation for the relations or functions introduced in each file
-        is shown in parentheses (? are placeholders).
+         The notation for the relations or functions introduced in each file
+         is shown in parentheses (? are placeholders).
    </body>
    <table name="basic_2_src"/>
 
index ed50adf79e14310e06514b8bfa869f724d4bb13d..0de7f19e663788950d194d45d6ef8e75c9990315 100644 (file)
@@ -4,7 +4,7 @@ table {
    class "grey" [ { "domain" * } {
       [
          [ "block" ] [ "leader" ]
-        [ "applicator (with →θ)*" ] [ "reduction" ] [ "→ζ *" ] [ "reference *" ]
+         [ "applicator (with →θ)*" ] [ "reduction" ] [ "→ζ *" ] [ "reference *" ]
       ]
    } ]
    [ { "{X | Γ ⊢ X : W}" * } {
@@ -17,23 +17,23 @@ table {
          [ "ⓐV" ] [ "→β" ] [ "no" ] [ "#i" ]
       ]
       class "prune" [
-         [ "global typed declaration ***" ] [ "Γ ⊢ pλW" ] 
-        [ "no" ] [ "no" ] [ "no" ] [ "$p" ]
+         [ "global typed declaration ***" ] [ "Γ ⊢ pλW" ]
+         [ "no" ] [ "no" ] [ "no" ] [ "$p" ]
       ]
       class "blue" [
          [ "native type annotation *" ] [ "Γ ⊢ ⓝW" ]
-        [ "no" ] [ "no" ] [ "yes" ] [ "no" ]
+         [ "no" ] [ "no" ] [ "yes" ] [ "no" ]
       ]
    } ]
    [ { "{X | Γ ⊢ X = V}" * } {
       class "sky" [
-         [ "local abbreviation *" ] [ "Γ ⊢ +δV" ] 
+         [ "local abbreviation *" ] [ "Γ ⊢ +δV" ]
          [ "no" ] [ "local →δ" ] [ "yes" ] [ "#i" ]
       ]
       class "cyan" [
-         [ "local definition **" ] [ "Γ ⊢ -δV" ] 
+         [ "local definition **" ] [ "Γ ⊢ -δV" ]
          [ "no" ] [ "local →δ" ] [ "no" ] [ "#i" ]
-      ]      
+      ]
       class "water" [
          [ "global definition ***" ] [ "Γ ⊢ pδV" ]
          [ "no" ] [ "global →δ" ] [ "no" ] [ "$p" ]
@@ -42,7 +42,7 @@ table {
    [ { "no" * } {
       class "green" [
          [ "sort ****" ] [ "Γ ⊢ ⋆k" ]
-        [ "no" ] [ "no" ] [ "no" ] [ "no" ]
+         [ "no" ] [ "no" ] [ "no" ] [ "no" ]
       ]
    } ]
 }
index ee1b110eb9d2dafb8f57b50ba97a5357420bbca5..9ba552400fd06fb6b4b94cf970575643704f47aa 100644 (file)
@@ -3,7 +3,7 @@ name "basic_2_src"
 table {
    class "grey"
    [ { "component" * } {
-        [ { "plane" * } { 
+        [ { "plane" * } {
              [ "files" * ]
           }
         ]
@@ -29,7 +29,7 @@ table {
 *)
    class "prune"
    [ { "dynamic typing" * } {
-(*        
+(*
         [ { "local env. ref. for native type assignment" * } {
              [ "lsubn ( ? ⊢ ? :⊑ ? )" "lsubn_ldrop" "lsubn_cpcs" "lsubn_nta" * ]
           }
@@ -123,7 +123,7 @@ table {
      }
    ]
    class "water"
-   [ { "reducibility" * } {        
+   [ { "reducibility" * } {
         [ { "context-sensitive focalized reduction" * } {
              [ "cfpr ( ? ⊢ ⦃?,?⦄ ➡ ⦃?,?⦄ )" "cnfpr_ltpss" + "cfpr_aaa" + "cfpr_cpr" + "cfpr_cfpr" * ]
           }
@@ -140,7 +140,7 @@ table {
         [ { "context-sensitive normal forms" * } {
              [ "cnf ( ? ⊢ 𝐍⦃?⦄ )" "cnf_lift" + "cnf_cif" * ]
           }
-        ]       
+        ]
         [ { "context-sensitive reduction" * } {
              [ "cpr ( ? ⊢ ? ➡ ? )" "cpr_lift" + "cpr_tpss" + "cpr_ltpss_dx" + "cpr_ltpss_sn" + "cpr_delift" + "cpr_aaa" + "cpr_ltpr" + "cpr_cpr" * ]
           }
@@ -197,7 +197,7 @@ table {
         [ { "basic local env. thinning" * } {
              [ "thin ( ? ▼*[?,?] ≡ ? )" "thin_ldrop" + "thin_delift" * ]
           }
-        ]        
+        ]
         [ { "inverse basic term relocation" * } {
              [ "delift ( ? ⊢ ? ▼*[?,?] ≡ ? )" "delift_alt ( ? ⊢ ? ▼▼*[?,?] ≡ ? )" "delift_lift" + "delift_tpss" + "delift_ltpss" + "delift_delift" * ]
           }
@@ -208,7 +208,7 @@ table {
              [ "tpss ( ? ⊢ ? ▶*[?,?] ? )" "tpss_alt ( ? ⊢ ? ▶▶*[?,?] ? )" "tpss_lift" "tpss_tpss" * ]
           }
         ]
-        [ { "generic local env. slicing" * } { 
+        [ { "generic local env. slicing" * } {
              [ "ldrops ( ⇩*[?] ? ≡ ? )" "ldrops_ldrop" + "ldrops_ldrops" * ]
           }
         ]
@@ -219,17 +219,17 @@ table {
         ]
         [ { "generic term relocation" * } {
              [ "lifts_vector ( ⇧*[?] ? ≡ ? )" "lifts_lift_vector" * ]
-             [ "lifts ( ⇧*[?] ? ≡ ? )" "lifts_lift" + "lifts_lifts" * ] 
+             [ "lifts ( ⇧*[?] ? ≡ ? )" "lifts_lift" + "lifts_lifts" * ]
           }
         ]
-        [ { "support for generic relocation" * } { 
+        [ { "support for generic relocation" * } {
              [ "gr2 ( @⦃?,?⦄ ≡ ? )" "gr2_plus ( ? + ? )" "gr2_minus ( ? ▭ ? ≡ ? )" "gr2_gr2" * ]
           }
         ]
      }
    ]
-   class "orange"   
-   [ { "substitution" * } { 
+   class "orange"
+   [ { "substitution" * } {
         [ { "parallel substitution" * } {
              [ "tps ( ? ⊢ ? ▶[?,?] ? )" "tps_lift" + "tps_tps" * ]
           }
@@ -257,7 +257,7 @@ table {
         ]
      }
    ]
-   class "red"   
+   class "red"
    [ { "grammar" * } {
         [ { "same head term form" * } {
              [ "tshf ( ? ≈ ? )" "(tshf_tshf)" * ]
@@ -277,11 +277,11 @@ table {
              [ "term" "term_weight ( ♯{?} )" "term_simple ( 𝐒⦃?⦄ )" "term_vector" * ]
              [ "item" * ]
           }
-        ] 
+        ]
         [ { "external syntax" * } {
              [ "aarity" * ]
           }
-        ] 
+        ]
      }
    ]
 }
index 8afc445b8f4343d68494ce3e774ebc8beb196c9c..b854c356909aef97473e8bc883bc0965517da022 100644 (file)
@@ -103,7 +103,7 @@ qed.
 
 (* Note: this is "if eqb n1 n2 then a2 else if leb n1 n2 then a1 else a3" *)
 let rec tri (A:Type[0]) n1 n2 a1 a2 a3 on n1 : A ≝
-  match n1 with 
+  match n1 with
   [ O    ⇒ match n2 with [ O ⇒ a2 | S n2 ⇒ a1 ]
   | S n1 ⇒ match n2 with [ O ⇒ a3 | S n2 ⇒ tri A n1 n2 a1 a2 a3 ]
   ].