]> matita.cs.unibo.it Git - helm.git/commitdiff
- improved lfpr_lfpr
authorFerruccio Guidi <ferruccio.guidi@unibo.it>
Wed, 18 Jan 2017 16:50:09 +0000 (16:50 +0000)
committerFerruccio Guidi <ferruccio.guidi@unibo.it>
Wed, 18 Jan 2017 16:50:09 +0000 (16:50 +0000)
- improved make stats (it was still invoking mac)
- hls.ml to list .ma files highligting the ones updated to basic_2A2

matita/matita/contribs/lambdadelta/Makefile
matita/matita/contribs/lambdadelta/basic_2/etc_new/frees/frees.etc [new file with mode: 0644]
matita/matita/contribs/lambdadelta/basic_2/rt_transition/hls.ml [new file with mode: 0644]
matita/matita/contribs/lambdadelta/basic_2/rt_transition/lfpr_frees.ma [new file with mode: 0644]
matita/matita/contribs/lambdadelta/basic_2/rt_transition/lfpr_lfpr.ma
matita/matita/contribs/lambdadelta/basic_2/rt_transition/lfpr_lfpx.ma
matita/matita/contribs/lambdadelta/basic_2/rt_transition/partial.txt
matita/matita/contribs/lambdadelta/basic_2/web/basic_2_src.tbl

index 6aa7ffbf82ef1b354f912b9de801c2a2d8ff2544..9de41db0c3f3f4fad5cc8c03a7e726c538f3ad24 100644 (file)
@@ -19,10 +19,6 @@ DEP_DIR      := ../../../components/binaries/matitadep
 DEP          := matitadep.native
 DEP_OPTS     :=
 
-MAC_DIR      := ../../../components/binaries/mac
-MAC          := mac.native
-MAC_OPTS     :=
-
 PRB_DIR      := ../../../components/binaries/probe
 PRB          := probe.native
 PRB_OPTS     := $(XOA_OPTS) -g -i
@@ -53,10 +49,6 @@ define MAS_TEMPLATE
 $(1)/$(1)_probe.txt: $$(MAS_$(1))
        @echo "  PROBE $(1)"
        $$(H)$$(PRB_DIR)/$$(PRB) $$(PRB_OPTS) $(1) -sn -sc -on -oc -f > $$@
-
-$(1)/$(1)_mac.txt: $$(MAS_$(1))
-       @echo "  MAC $(1)"
-       $$(H)$$(MAC_DIR)/$$(MAC) $$(MAC_OPTS) $$^ > $$@
 endef
 
 $(foreach PKG, $(PACKAGES), $(eval $(call MAS_TEMPLATE,$(PKG))))
@@ -127,51 +119,54 @@ define STATS_TEMPLATE
   STT_$(1) := $(1).stats
   STTS     += $$(STT_$(1))
 
-  $$(STT_$(1)): S0  = $$(shell cat $(1)/$(1)_probe.txt)
-  $$(STT_$(1)): S1  = $$(shell cat $(1)/$(1)_mac.txt)
-  $$(STT_$(1)): S4  = $$(shell ls $$(MAS_$(1)) | wc -l)
-  $$(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)): C3  = $$(shell grep "defined[.-]" $$(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 $(1)/$(1)_mac.txt
+  $$(STT_$(1)): C0 = $$(shell cat $(1)/$(1)_probe.txt)
+  $$(STT_$(1)): C2 = $$(word 2, $$(C0))
+  $$(STT_$(1)): C3 = $$(word 4, $$(C0))
+  $$(STT_$(1)): O1 = $$(shell ls $$(MAS_$(1)) | wc -l)
+  $$(STT_$(1)): O2 = $$(word 1, $$(C0))
+  $$(STT_$(1)): O3 = $$(word 3, $$(C0))
+  $$(STT_$(1)): P1 = $$(word 10, $$(C0))
+  $$(STT_$(1)): P2 = $$(word 9, $$(C0))
+  $$(STT_$(1)): P3 = $$(word 8, $$(C0))
+  $$(STT_$(1)): P4 = $$(shell grep "qed[.-]" $$(MAS_$(1)) | wc -l)
+  $$(STT_$(1)): D1 = $$(word 5, $$(C0))
+  $$(STT_$(1)): D2 = $$(word 7, $$(C0))
+  $$(STT_$(1)): D3 = $$(shell grep "defined[.-]" $$(MAS_$(1)) | wc -l)  
+  $$(STT_$(1)): M1 = $$(word 6, $$(C0))
+  $$(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 %-47s' 'Statistics for:' $(1)
+       @printf '%-15s %-46s' 'Statistics for:' $(1)
        @printf '\x1B[0m\n'
        @printf '\x1B[1;40;35m'
-       @printf '%-8s %6i' Chars $$(word 1, $$(S1))
-       @printf '   %-8s %4i' Pages $$(word 2, $$(S1))
-       @printf '   %-7s %7i' Nodes $$(word 3, $$(S0))
+       @printf '%-12s' '' 
+       @printf '   %-8s %6i' Chars $$(C2)
+       @printf '   %-7s %7i' Nodes $$(C3)
        @printf '   %-11s' ''
        @printf '\x1B[0m\n'
        @printf '\x1B[1;40;36m'
-       @printf '%-8s %6i' Files $$(S4)
-       @printf '   %-8s %4i' Sources $$(word 1, $$(S0))
-       @printf '   %-7s %7i' Objects $$(word 2, $$(S0))
+       @printf '%-8s %3i' Files $$(O1)
+       @printf '   %-8s %6i' Sources $$(O2)
+       @printf '   %-7s %7i' Objects $$(O3)
        @printf '   %-11s' ''
        @printf '\x1B[0m\n'     
        @printf '\x1B[1;40;32m'
-       @printf '%-8s %6i' Theorems $$(P1)
-       @printf '   %-8s %4i' Lemmas $$(P2)
+       @printf '%-8s %3i' Theorems $$(P1)
+       @printf '   %-8s %6i' Lemmas $$(P2)
        @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 '   %-7s %7i' Proved $$(C3)
+       @printf '%-8s %3i' Declared $$(D1)
+       @printf '   %-8s %6i' Defined $$(D2)    
+       @printf '   %-7s %7i' Proved $$(D3)
        @printf '   %-11s' ''
        @printf '\x1B[0m\n'
        @printf '\x1B[1;40;31m'
-       @printf '%-8s %6i' Axioms $$(M1)
-       @printf '   %-8s %4i' Comments $$(M2)
+       @printf '%-8s %3i' Axioms $$(M1)
+       @printf '   %-8s %6i' Comments $$(M2)
        @printf '   %-7s %7i' Marks $$(M3)
        @printf '   %-11s' ''
        @printf '\x1B[0m\n'
@@ -191,15 +186,15 @@ define SUMMARY_TEMPLATE
   SUM_$(1) := $(1)/web/$(1)_sum.tbl  
   SUMS     += $$(SUM_$(1))
 
-  $$(SUM_$(1)): S0 = $$(shell cat $(1)/$(1)_probe.txt)
-  $$(SUM_$(1)): S1 = $$(word 1, $$(S0))
-  $$(SUM_$(1)): S2 = $$(word 2, $$(S0))
-  $$(SUM_$(1)): S4 = $$(word 4, $$(S0))
-  $$(SUM_$(1)): C1 = $$(word 5, $$(S0))
-  $$(SUM_$(1)): C2 = $$(word 7, $$(S0))
+  $$(SUM_$(1)): C0 = $$(shell cat $(1)/$(1)_probe.txt)
+  $$(SUM_$(1)): S1 = $$(word 1, $$(C0))
+  $$(SUM_$(1)): S2 = $$(word 2, $$(C0))
+  $$(SUM_$(1)): S4 = $$(word 4, $$(C0))
+  $$(SUM_$(1)): C1 = $$(word 5, $$(C0))
+  $$(SUM_$(1)): C2 = $$(word 7, $$(C0))
   $$(SUM_$(1)): C3 = $$(shell echo "$$(C1)+$$(C2)"|bc)
-  $$(SUM_$(1)): P1 = $$(word 10, $$(S0))
-  $$(SUM_$(1)): P2 = $$(word 9, $$(S0))
+  $$(SUM_$(1)): P1 = $$(word 10, $$(C0))
+  $$(SUM_$(1)): P2 = $$(word 9, $$(C0))
   $$(SUM_$(1)): P3 = $$(shell echo "$$(P1)+$$(P2)"|bc)
 
   $$(SUM_$(1)): $$(MAS_$(1)) $(1)/$(1)_probe.txt
diff --git a/matita/matita/contribs/lambdadelta/basic_2/etc_new/frees/frees.etc b/matita/matita/contribs/lambdadelta/basic_2/etc_new/frees/frees.etc
new file mode 100644 (file)
index 0000000..a9349e8
--- /dev/null
@@ -0,0 +1,5 @@
+(* A Basic_A2 lemma we do not need so far *)
+axiom frees_pair_flat: ∀L,T,f1,I1,V1. L.ⓑ{I1}V1 ⊢ 𝐅*⦃T⦄ ≡ f1 →
+                       ∀f2,I2,V2. L.ⓑ{I2}V2 ⊢ 𝐅*⦃T⦄ ≡ f2 →
+                       ∀f0. f1 ⋓ f2 ≡ f0 →
+                       ∀I0,I. L.ⓑ{I0}ⓕ{I}V1.V2 ⊢ 𝐅*⦃T⦄ ≡ f0.
diff --git a/matita/matita/contribs/lambdadelta/basic_2/rt_transition/hls.ml b/matita/matita/contribs/lambdadelta/basic_2/rt_transition/hls.ml
new file mode 100644 (file)
index 0000000..9c12ae1
--- /dev/null
@@ -0,0 +1,41 @@
+let cols = int_of_string (Sys.getenv "COLUMNS")
+
+let hl = ref []
+
+let normal = "\x1B[0m"
+
+let color = "\x1B[32m"
+
+let add s =
+   if s = "" then false else
+   begin hl := s :: !hl; true end
+
+let rec read ich =
+   if Scanf.fscanf ich "%s " add then read ich
+
+let length l s = max l (String.length s)
+
+let write l c s =
+   let pre, post = if List.mem s !hl then color, normal else "", "" in
+   let spc = String.make (l - String.length s) ' ' in
+   let bol, ret =
+       if c = 0 || c = cols then "", l else
+       if c + l < cols then " ", c + succ l else "\n", l
+   in
+   Printf.printf "%s%s%s%s%s" bol pre s post spc;
+   ret
+
+let process fname =
+   let ich = open_in fname in
+   read ich; close_in ich
+
+let help = ""
+
+let main =
+   Arg.parse [] process help;
+   let files = Sys.readdir "." in
+   Array.fast_sort String.compare files;
+   let l = Array.fold_left length 0 files in
+   if cols < l then failwith "window too small";
+   let c = Array.fold_left (write l) 0 files in
+   if 0 < c && c < cols then print_newline ()
diff --git a/matita/matita/contribs/lambdadelta/basic_2/rt_transition/lfpr_frees.ma b/matita/matita/contribs/lambdadelta/basic_2/rt_transition/lfpr_frees.ma
new file mode 100644 (file)
index 0000000..3c204dc
--- /dev/null
@@ -0,0 +1,26 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||M||                                                             *)
+(*      ||A||       A project by Andrea Asperti                           *)
+(*      ||T||                                                             *)
+(*      ||I||       Developers:                                           *)
+(*      ||T||         The HELM team.                                      *)
+(*      ||A||         http://helm.cs.unibo.it                             *)
+(*      \   /                                                             *)
+(*       \ /        This file is distributed under the terms of the       *)
+(*        v         GNU General Public License Version 2                  *)
+(*                                                                        *)
+(**************************************************************************)
+
+include "basic_2/rt_transition/lfpx_frees.ma".
+include "basic_2/rt_transition/cpm_cpx.ma".
+
+(* PARALLEL R-TRANSITION FOR LOCAL ENV.S ON REFERRED ENTRIES ****************)
+
+(* Properties with context-sensitive free variables *************************)
+
+lemma cpm_frees_conf: ∀n,h,G. R_frees_confluent (cpm n h G).
+/3 width=6 by cpm_fwd_cpx, cpx_frees_conf/ qed-.
+
+lemma lfpr_frees_conf: ∀h,G. lexs_frees_confluent (cpm 0 h G) cfull.
+/4 width=9 by cpm_fwd_cpx, lfpx_frees_conf, lexs_co/ qed-.
index fe854ea4584f51785dd83bb72adf5b9d24a3b219..d05584ebf795bae07dd1c19000b10b2c894f31ce 100644 (file)
 (**************************************************************************)
 
 include "basic_2/static/lfxs_lfxs.ma".
-include "basic_2/rt_transition/lfpx_frees.ma".
 include "basic_2/rt_transition/cpm_lsubr.ma".
 include "basic_2/rt_transition/cpr.ma".
 include "basic_2/rt_transition/cpr_drops.ma".
 include "basic_2/rt_transition/lfpr_drops.ma".
 include "basic_2/rt_transition/lfpr_fqup.ma".
-include "basic_2/rt_transition/lfpr_lfpx.ma".
+include "basic_2/rt_transition/lfpr_frees.ma".
 
 (* PARALLEL R-TRANSITION FOR LOCAL ENV.S ON REFERRED ENTRIES ****************)
 
@@ -378,4 +377,4 @@ qed-.
 (* Main properties **********************************************************)
 
 theorem lfpr_conf: ∀h,G,T. confluent … (lfpr h G T).
-/4 width=6 by cpr_conf_lfpr, lfpx_frees_conf_fwd_lfpr, lfpx_frees_conf, lfxs_conf/ qed-.
+/3 width=6 by cpr_conf_lfpr, lfpr_frees_conf, lfxs_conf/ qed-.
index aea28258ead0e8b4f55fb26b9d599a86c1952c85..47323a86d149d3a0b141e4be1ce0e016feff16e7 100644 (file)
@@ -20,9 +20,5 @@ include "basic_2/rt_transition/lfpr.ma".
 
 (* Fwd. lemmas with unc. rt-transition for local env.s on referred entries **)
 
-lemma lfpx_frees_conf_fwd_lfpr: ∀h,G. lexs_frees_confluent (cpx h G) cfull →
-                                lexs_frees_confluent (cpm 0 h G) cfull.
-/4 width=7 by cpm_fwd_cpx, lexs_co/ qed-.
-
 lemma lfpr_fwd_lfpx: ∀h,T,G,L1,L2. ⦃G, L1⦄ ⊢ ➡[h, T] L2 → ⦃G, L1⦄ ⊢ ⬈[h, T] L2.
 /3 width=3 by cpm_fwd_cpx, lfxs_co/ qed-.
index 26a059fa71ca9e029de50c08737d96b2db1fe705..fc1c009caa52819c8be9f5dd3bb2747c5d8fb44c 100644 (file)
@@ -3,4 +3,4 @@ cpx.ma cpx_simple.ma cpx_drops.ma cpx_lsubr.ma
 lfpx.ma lfpx_length.ma lfpx_drops.ma lfpx_fqup.ma lfpx_frees.ma 
 cpm.ma cpm_simple.ma cpm_drops.ma cpm_lsubr.ma cpm_cpx.ma
 cpr.ma cpr_drops.ma
-lfpr.ma lfpr_length.ma lfpr_drops.ma lfpr_fqup.ma lfpr_lfpx.ma lfpr_lfpr.ma
+lfpr.ma lfpr_length.ma lfpr_drops.ma lfpr_fqup.ma lfpr_frees.ma lfpr_lfpx.ma lfpr_lfpr.ma
index fa1bbc81ab6acad24dbf0820ce04922c519902a5..c9380ba24ee41b059f08070b4d9d0499f016ba21 100644 (file)
@@ -144,7 +144,7 @@ table {
         ]
 *)
         [ { "t-bound context-sensitive rt-transition" * } {
-             [ "lfpr ( ⦃?,?⦄ ⊢ ➡[?,?] ? )" "lfpr_length" + "lfpr_drops" + "lfpr_fqup" + "lfpr_lfpx" + "lfpr_lfpr" * ]
+             [ "lfpr ( ⦃?,?⦄ ⊢ ➡[?,?] ? )" "lfpr_length" + "lfpr_drops" + "lfpr_fqup" + "lfpr_frees" + "lfpr_lfpx" + "lfpr_lfpr" * ]
              [ "cpr ( ⦃?,?⦄ ⊢ ? ➡[?] ? )" "cpr_drops" (* + "cpr_llpx_sn" + "cpr_cir" *) * ]
              [ "cpm ( ⦃?,?⦄ ⊢ ? ➡[?,?] ? )" "cpm_simple" + "cpm_drops" + "cpm_lsubr" + "cpm_cpx" * ]
           }