From dc7ab96e18b2a74ba7c625f9af42ed0a8c412e52 Mon Sep 17 00:00:00 2001 From: Ali Caglayan Date: Fri, 3 Mar 2023 15:17:28 +0100 Subject: [PATCH] Revert "Revert "Merge pull request #89 from coq-community/coq-master+dune"" This reverts commit f00d514e34dca72d67cdb9f47d3b92475584454e. --- .github/workflows/docker-action.yml | 3 +- .gitignore | 51 +- Make | 7 - Makefile | 12 + Makefile.in | 306 --- README.md | 70 +- configure.ac | 228 -- coq-dpdgraph.opam | 17 +- dpdgraph.mllib | 2 - dune-project | 5 + meta.yml | 87 +- dpd2dot.ml => src/dpd2dot.ml | 0 dpd_compute.ml => src/dpd_compute.ml | 0 dpd_dot.ml => src/dpd_dot.ml | 0 dpd_lex.mll => src/dpd_lex.mll | 0 dpd_parse.mly => src/dpd_parse.mly | 0 src/dpdgraph.mlpack | 0 dpdusage.ml => src/dpdusage.ml | 0 src/dune | 42 + graphdepend.mlg => src/graphdepend.mlg | 0 searchdepend.mlg => src/searchdepend.mlg | 0 src/version.ml | 1 + tests/Morph.dot.oracle | 37 - tests/Morph.dpd.oracle | 50 - tests/Morph.t | 332 +++ tests/{Morph.cmd => MorphCmd.v} | 0 tests/Morph_rw.dot.oracle | 96 - tests/Morph_rw.dpd.oracle | 114 - tests/Polymorph.dot.oracle | 11 - tests/Polymorph.dpd.oracle | 5 - tests/Polymorph.t | 36 + tests/{Polymorph.cmd => PolymorphCmd.v} | 0 tests/PrimitiveProjections.dot.oracle | 19 - tests/PrimitiveProjections.dpd.oracle | 14 - tests/PrimitiveProjections.t | 84 + tests/PrimitiveProjections2.dot.oracle | 11 - tests/PrimitiveProjections2.dpd.oracle | 5 - ...jections.cmd => PrimitiveProjectionsCmd.v} | 0 tests/{Test.cmd => TestCmd.v} | 0 tests/attributes.err.dpd | 16 - tests/attributes.err.oracle | 2 - tests/attributes.err.t | 22 + tests/double_node.err.dpd | 5 - tests/double_node.err.oracle | 2 - tests/double_node.err.t | 10 + tests/dune | 15 + tests/file_not_found.err.oracle | 2 - tests/file_not_found.err.t | 3 + tests/graph.dot.oracle | 623 ----- tests/graph.dpd.oracle | 1100 -------- tests/graph.t | 2218 +++++++++++++++++ tests/graph.without.dot.oracle | 280 --- tests/graph2.dot.oracle | 78 - tests/graph2.dpd.oracle | 95 - tests/graph2.dpdusage.oracle | 2 - tests/lexing.err.dpd | 5 - tests/lexing.err.oracle | 2 - tests/lexing.err.t | 10 + tests/missing_node.err.dpd | 5 - tests/missing_node.err.oracle | 2 - tests/missing_node.err.t | 10 + tests/parsing.err.dpd | 5 - tests/parsing.err.oracle | 2 - tests/parsing.err.t | 10 + tests/search.oracle | 6 - tests/search.t | 24 + tests/{search.cmd => searchCmd.v} | 0 tests/unterminated_comment.err.dpd | 5 - tests/unterminated_comment.err.oracle | 2 - tests/unterminated_comment.err.t | 10 + dpdgraph.v => theories/dpdgraph.v | 0 theories/dune | 6 + 72 files changed, 2953 insertions(+), 3269 deletions(-) delete mode 100644 Make create mode 100644 Makefile delete mode 100644 Makefile.in delete mode 100644 configure.ac delete mode 100644 dpdgraph.mllib create mode 100644 dune-project rename dpd2dot.ml => src/dpd2dot.ml (100%) rename dpd_compute.ml => src/dpd_compute.ml (100%) rename dpd_dot.ml => src/dpd_dot.ml (100%) rename dpd_lex.mll => src/dpd_lex.mll (100%) rename dpd_parse.mly => src/dpd_parse.mly (100%) create mode 100644 src/dpdgraph.mlpack rename dpdusage.ml => src/dpdusage.ml (100%) create mode 100644 src/dune rename graphdepend.mlg => src/graphdepend.mlg (100%) rename searchdepend.mlg => src/searchdepend.mlg (100%) create mode 100644 src/version.ml delete mode 100644 tests/Morph.dot.oracle delete mode 100644 tests/Morph.dpd.oracle create mode 100644 tests/Morph.t rename tests/{Morph.cmd => MorphCmd.v} (100%) delete mode 100644 tests/Morph_rw.dot.oracle delete mode 100644 tests/Morph_rw.dpd.oracle delete mode 100644 tests/Polymorph.dot.oracle delete mode 100644 tests/Polymorph.dpd.oracle create mode 100644 tests/Polymorph.t rename tests/{Polymorph.cmd => PolymorphCmd.v} (100%) delete mode 100644 tests/PrimitiveProjections.dot.oracle delete mode 100644 tests/PrimitiveProjections.dpd.oracle create mode 100644 tests/PrimitiveProjections.t delete mode 100644 tests/PrimitiveProjections2.dot.oracle delete mode 100644 tests/PrimitiveProjections2.dpd.oracle rename tests/{PrimitiveProjections.cmd => PrimitiveProjectionsCmd.v} (100%) rename tests/{Test.cmd => TestCmd.v} (100%) delete mode 100644 tests/attributes.err.dpd delete mode 100644 tests/attributes.err.oracle create mode 100644 tests/attributes.err.t delete mode 100644 tests/double_node.err.dpd delete mode 100644 tests/double_node.err.oracle create mode 100644 tests/double_node.err.t create mode 100644 tests/dune delete mode 100644 tests/file_not_found.err.oracle create mode 100644 tests/file_not_found.err.t delete mode 100644 tests/graph.dot.oracle delete mode 100644 tests/graph.dpd.oracle create mode 100644 tests/graph.t delete mode 100644 tests/graph.without.dot.oracle delete mode 100644 tests/graph2.dot.oracle delete mode 100644 tests/graph2.dpd.oracle delete mode 100644 tests/graph2.dpdusage.oracle delete mode 100644 tests/lexing.err.dpd delete mode 100644 tests/lexing.err.oracle create mode 100644 tests/lexing.err.t delete mode 100644 tests/missing_node.err.dpd delete mode 100644 tests/missing_node.err.oracle create mode 100644 tests/missing_node.err.t delete mode 100644 tests/parsing.err.dpd delete mode 100644 tests/parsing.err.oracle create mode 100644 tests/parsing.err.t delete mode 100644 tests/search.oracle create mode 100644 tests/search.t rename tests/{search.cmd => searchCmd.v} (100%) delete mode 100644 tests/unterminated_comment.err.dpd delete mode 100644 tests/unterminated_comment.err.oracle create mode 100644 tests/unterminated_comment.err.t rename dpdgraph.v => theories/dpdgraph.v (100%) create mode 100644 theories/dune diff --git a/.github/workflows/docker-action.yml b/.github/workflows/docker-action.yml index 7a513a090..69d7b3b7e 100644 --- a/.github/workflows/docker-action.yml +++ b/.github/workflows/docker-action.yml @@ -20,7 +20,7 @@ jobs: - 'coqorg/coq:dev' fail-fast: false steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - uses: coq-community/docker-coq-action@v1 with: opam_file: 'coq-dpdgraph.opam' @@ -29,6 +29,7 @@ jobs: env: OPAMWITHTEST: 'true' + # See also: # https://github.com/coq-community/docker-coq-action#readme # https://github.com/erikmd/docker-coq-github-action-demo diff --git a/.gitignore b/.gitignore index ae981e783..f6de776e3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,47 +1,4 @@ -.depend -*.annot -*.cmo -*.cma -*.cmi -*.a -*.o -*.cmx -*.cmxs -*.cmxa -*.mlg.d -version.ml -graphdepend.ml -searchdepend.ml - -autom4te.cache -configure -Makefile -Make_coq.conf -.Make_coq.d -config.log -config.status -*.aux -*.glob -*.mllib.d -*.v.d -*.vo -*.vok -*.vos - -coqthmdep -dpd2dot -dpdusage -Make_coq -CoqMakefile.conf -dpd_lex.ml -dpd_parse.ml -dpd_parse.mli -tests/*.log -tests/*.ok -tests/*.dot -tests/*.dpd -!tests/*.err.dpd -tests/*.glob -tests/Test.vo - -META.coq-dpdgraph +_build +*~ +.merlin +*.install diff --git a/Make b/Make deleted file mode 100644 index b17374973..000000000 --- a/Make +++ /dev/null @@ -1,7 +0,0 @@ --generate-meta-for-package coq-dpdgraph --I . --R . dpdgraph -searchdepend.mlg -graphdepend.mlg -dpdgraph.mllib -dpdgraph.v diff --git a/Makefile b/Makefile new file mode 100644 index 000000000..434bd939c --- /dev/null +++ b/Makefile @@ -0,0 +1,12 @@ + +build: + dune build + +install: + dune install + +test: + dune test + +promote: + dune promote diff --git a/Makefile.in b/Makefile.in deleted file mode 100644 index f049f7141..000000000 --- a/Makefile.in +++ /dev/null @@ -1,306 +0,0 @@ -#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# This file is part of the DpdGraph tools. -# Copyright (C) 2009-2017 Anne Pacalet (Anne.Pacalet@free.fr) -# and Yves Bertot (Yves.Bertot@inria.fr) -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# This file is distributed under the terms of the -# GNU Lesser General Public License Version 2.1 -#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.SUFFIXES: - -ECHO=@echo -ECHO_CIBLE = $(ECHO) " * build $@" - -PRE=dpd - -NAME=@PACKAGE_NAME@ -VERSION=@PACKAGE_VERSION@ - -BINDIR=@BINDIR@ - -DPDPLUGIN=./dpdgraph.vo -DPD2DOT=./dpd2dot -DPDUSAGE=./dpdusage - -INCLUDES = -I @OCAMLGRAPH_PATH@ - -all : $(DPDPLUGIN) $(DPD2DOT) $(DPDUSAGE) - -DISTRIBUTED = $(PRE)_compute.ml $(PRE)_dot.ml \ - $(PRE)_parse.mly $(PRE)_lex.mll $(PRE)2dot.ml $(PRE)usage.ml - -DISTRIBUTED+=dpdgraph.v - -ML_COMMON = version.ml $(PRE)_compute.ml $(PRE)_dot.ml \ - $(PRE)_parse.ml $(PRE)_lex.ml -MLI_COMMON = version.mli $(PRE)_compute.mli $(PRE)_dot.mli $(PRE)_lex.mli -ML_DPD2DOT = $(PRE)2dot.ml -MLI_DPD2DOT = $(PRE)2dot.mli -ML_DPDUSAGE = $(PRE)usage.ml -MLI_DPDUSAGE = $(PRE)usage.mli - -DISTRIBUTED+=$(MLI_COMMON) $(MLI_DPD2DOT) $(MLI_DPDUSAGE) - -ML_ALL = $(ML_COMMON) $(ML_DPD2DOT) $(ML_DPDUSAGE) - -CMIS_DPD2DOT=$(MLI_COMMON:%.ml=%.cmo) $(MLI_DPD2DOT:%.ml=%.cmo) -CMOS_DPD2DOT=$(ML_COMMON:%.ml=%.cmo) $(ML_DPD2DOT:%.ml=%.cmo) -CMIS_DPDUSAGE=$(MLI_COMMON:%.ml=%.cmo) $(MLI_DPDUSAGE:%.ml=%.cmo) -CMOS_DPDUSAGE=$(ML_COMMON:%.ml=%.cmo) $(ML_DPDUSAGE:%.ml=%.cmo) -CMXS=$(ML_ALL:%.ml=%.cmx) - -OCAMLC=@OCAMLC@ -OCAMLOPT=@OCAMLOPT@ -OCAMLDEP=@OCAMLDEP@ -OCAMLLEX=@OCAMLLEX@ -OCAMLYACC=@OCAMLYACC@ - -WARN_ERR := -warn-error +a -OCAMLFLAGS := -w +a $(WARN_ERR) -g -dtypes $(INCLUDES) -c -OCAMLFLAGS += $(OCAML_EXTRA_OPTS) -OCAMLOPTFLAGS = -c - -COQ_MAKEFILE=@COQ_MAKEFILE@ -# COQDEP=$(OCAMLDEP) - -COQEXTFILES=searchdepend.mlg graphdepend.mlg - -GENERATED+=$(COQEXTFILES:%.mlg=%.o) $(COQEXTFILES:%.mlg=%.cmx) dpdgraph.cmxs - -DISTRIBUTED+=$(COQEXTFILES) dpdgraph.mllib -DISTRIBUTED+=Make - -install : Make_coq - $(MAKE) -f $< install - cp dpd2dot dpdusage $(BINDIR)/ - -$(DPDPLUGIN) : Make_coq $(DISTRIBUTED) - $(ECHO_CIBLE) - $(MAKE) -f $< $@ - -Make_coq : Make - $(ECHO_CIBLE) - $(COQ_MAKEFILE) -f $< -o $@ - -GENERATED+= Make_coq - -version.ml : configure - $(ECHO_CIBLE) - $(ECHO) "(* This file is generated by Makefile. Do not modify. *)" > $@ - $(ECHO) "let version = \""$(VERSION)"\"" >> $@ - -GENERATED+=version.ml - -$(DPD2DOT) : $(CMOS_DPD2DOT) $(CMIS_DPD2DOT) - $(ECHO_CIBLE) - $(OCAMLC) -g $(INCLUDES) -o $@ graph.cma $(CMOS_DPD2DOT) - -$(DPDUSAGE) : $(CMOS_DPDUSAGE) $(CMIS_DPDUSAGE) - $(ECHO_CIBLE) - $(OCAMLC) -g $(INCLUDES) -o $@ graph.cma $(CMOS_DPDUSAGE) - -%.cmo : %.ml - $(ECHO_CIBLE) - $(OCAMLC) $(OCAMLFLAGS) $< - -%.cmx : %.ml - $(ECHO_CIBLE) - $(OCAMLOPT) $(OPTPACKFLAGS) $(OCAMLOPTFLAGS) $< - -%.cmi : %.mli - $(ECHO_CIBLE) - $(OCAMLC) $(OCAMLFLAGS) $< - -%.ml : %.mll - $(ECHO_CIBLE) - $(OCAMLLEX) $< - -GENERATED+=$(PRE)_lex.ml - -%.ml : %.mly - $(ECHO_CIBLE) - $(OCAMLYACC) $< - -GENERATED+=$(PRE)_parse.ml $(PRE)_parse.mli - -depend: .depend - -.depend : $(ML_ALL) - $(ECHO_CIBLE) - $(OCAMLDEP) $(ML_ALL) *.mli > $@ - -include .depend - -GENERATED+=.depend - -#------------------------------------------------------------------------------- - -TESTDIR=tests -TESTS_SRC=$(TESTDIR)/Morph.v $(TESTDIR)/Test.v $(TESTDIR)/Polymorph.v \ - $(TESTDIR)/PrimitiveProjections.v\ - $(TESTDIR)/Morph.cmd $(TESTDIR)/Test.cmd $(TESTDIR)/search.cmd \ - $(TESTDIR)/Polymorph.cmd $(TESTDIR)/PrimitiveProjections.cmd -TESTS_DPD=$(TESTDIR)/graph.dpd $(TESTDIR)/graph2.dpd \ - $(TESTDIR)/Morph.dpd $(TESTDIR)/Morph_rw.dpd \ - $(TESTDIR)/Polymorph.dpd \ - $(TESTDIR)/PrimitiveProjections.dpd \ - $(TESTDIR)/PrimitiveProjections2.dpd -TESTS_DOT=$(TESTS_DPD:%.dpd=%.dot) -TESTS_ERR_DPD=$(wildcard $(TESTDIR)/*.err.dpd) - -TESTS=$(TESTS_DPD) $(TESTS_DOT) $(TESTDIR)/graph.without.dot \ - $(TESTDIR)/search $(TESTDIR)/graph2.dpdusage \ - $(TESTS_ERR_DPD:%.dpd=%) $(TESTDIR)/file_not_found.err -TESTS_LOG=$(TESTS:%=%.log) -TESTS_ORACLE=$(TESTS:%=%.oracle) -TESTS_OK=$(TESTS:%=%.ok) - -DISTRIBUTED+=$(TESTS_SRC) $(TESTS_ORACLE) - -.PRECIOUS : $(TESTS) $(TESTS_LOG) $(TESTS_ORACLE) - -.PHONY: tests test -tests test : $(TESTS_OK) - -.PHONY: test-suite -test-suite: - rm -f tests.ok - ($(MAKE) tests && touch tests.ok) | tee tmp.log - if grep DIFFERENCES tmp.log >/dev/null 2>&1 ; then \ - for i in $$(grep DIFFERENCES tmp.log | grep -o 'diff .*' | sed s'/diff //g' | sed s'/ /~/g'); do \ - i="$$(echo "$$i" | sed s'/~/ /g')"; \ - echo diff $$i; \ - diff $$i; \ - done ; \ - fi - if grep DIFFERENCES tmp.log >/dev/null 2>&1 ; then false ; else true ; fi - rm tests.ok - -$(TESTDIR)/%.dpdusage.log: $(TESTDIR)/%.dpd $(DPDUSAGE) - $(DPDUSAGE) $< > $@ - -$(TESTDIR)/file_not_found.err.log: $(DPD2DOT) - $(DPD2DOT) file_not_found.err.dpd > $@ 2>&1 - -$(TESTDIR)/%.err.log: $(TESTDIR)/%.err.dpd $(DPD2DOT) - $(DPD2DOT) $< > $@ 2>&1 - -%.log : % - cp $< $@ - -%.vo : %.v - coqc -q -R . dpdgraph $< - -%.html : %.v - coqdoc $< - -%.svg : %.dot - dot -Tsvg -o$@ $< - -$(TESTDIR)/Morph%.dpd : $(TESTDIR)/Morph.vo $(TESTDIR)/Morph.cmd $(DPDPLUGIN) - # cd to tests to generate .dpd file there. - cd $(TESTDIR); coqtop -R .. dpdgraph -I .. < Morph.cmd > /dev/null 2>&1 - -$(TESTDIR)/Polymorph%.dpd : $(TESTDIR)/Polymorph.vo $(TESTDIR)/Polymorph.cmd \ - $(DPDPLUGIN) - cd $(TESTDIR); coqtop -R .. dpdgraph -I .. < Polymorph.cmd - -$(TESTDIR)/graph.dpd $(TESTDIR)/graph2.dpd: \ - $(TESTDIR)/Test.vo $(TESTDIR)/Test.cmd $(DPDPLUGIN) - # cd to tests to generate .dpd file there. - cd $(TESTDIR); coqtop -R .. dpdgraph -I .. < Test.cmd > /dev/null 2>&1 - -$(TESTDIR)/PrimitiveProjections.dpd $(TESTDIR)/PrimitiveProjections2.dpd: \ - $(TESTDIR)/PrimitiveProjections.vo $(TESTDIR)/PrimitiveProjections.cmd $(DPDPLUGIN) - # cd to tests to generate .dpd file there. - cd $(TESTDIR); coqtop -R .. dpdgraph -I .. < PrimitiveProjections.cmd > /dev/null 2>&1 - -%.dpd : %.vo %.cmd - # cd to tests to generate .dpd file there. - cd $(TESTDIR); coqtop -R .. dpdgraph -I .. < $(*F).cmd > /dev/null 2>&1 - -$(TESTDIR)/search.log : $(TESTDIR)/Test.vo $(TESTDIR)/search.cmd $(DPDPLUGIN) - cat $(TESTDIR)/search.cmd | coqtop -R . dpdgraph -I . 2> /dev/null \ - | sed -e 's/Welcome to Coq.*/Welcome to Coq/' > $@ - -%.dot : %.dpd $(DPD2DOT) - $(DPD2DOT) $< > /dev/null - -%.without.dot : %.dpd $(DPD2DOT) - $(DPD2DOT) -without-defs -o $@ $< > /dev/null - -%.zgr : %.dot - zgrviewer $< - -%.ok : %.log %.oracle - $(ECHO_CIBLE) - @if diff $*.oracle $*.log > /dev/null ; then \ - echo "Bravo... Test Ok" ; \ - touch $@ ; \ - else \ - echo "DIFFERENCES : diff $*.oracle $*.log" ; \ - echo "To force a new execution of the test:" ; \ - echo " rm $*.log ; make $*.ok"; \ - echo "To accept the results: " ; \ - echo " cp $*.log $*.oracle" ; \ - rm -f $@ ; \ - fi - -# oracle is updated by user, but one is needed the first time -%.oracle : - $(ECHO_CIBLE) "[WARNING : automatic generation of $@]" - $(MAKE) $*.log - cp $*.log $*.oracle - -#------------------------------------------------------------------------------- -DISTRIBUTED+=Makefile LICENSE README.md configure Makefile.in - -distrib : $(NAME)-$(VERSION).tgz - -%.tgz : clean - $(ECHO_CIBLE) - rm -rf $* $@ - mkdir $* - cp --parents $(DISTRIBUTED) $* - tar zcvf $@ $* - rm -rf $* - $(ECHO) "Don't forget to copy README.md and $@ on the server if needed" - - -#------------------------------------------------------------------------------- -# Configuration - -Makefile: Makefile.in config.status - $(ECHO_CIBLE) - ./config.status $@ - -config.status: configure - ./config.status --recheck - -#------------------------------------------------------------------------------- -clean_coq : Make_coq - $(MAKE) -f $< clean - -clean_test : - rm -f $(TESTS) $(TESTS_LOG) $(TESTS_OK) - rm -f $(TESTDIR)/Test.vo $(TESTDIR)/Test.glob - rm -f $(TESTDIR)/Morph.vo $(TESTDIR)/Morph.glob - rm -f $(TESTDIR)/Polymorph.vo $(TESTDIR)/Polymorph.glob - rm -f $(TESTDIR)/.*.vo.aux - -clean_config: - rm -rf autom4te.cache - rm -f configure config.log config.status - rm -r Makefile - -clean : clean_coq clean_test - rm -f $(GENERATED) - rm -f $(CMOS_DPDUSAGE) $(CMOS_DPD2DOT) $(CMXS) $(ML_ALL:%.ml=%.o) *.cmi - rm -f $(ML_ALL:%.ml=%.annot) - rm -f $(DPD2DOT) $(DPDUSAGE) $(DPDPLUGIN) - $(ECHO) "Use: make clean_config to remove configuration generated files" - -archi_clean: clean clean_config - -#------------------------------------------------------------------------------- diff --git a/README.md b/README.md index 0c379b3ae..c50f7f5c4 100644 --- a/README.md +++ b/README.md @@ -38,10 +38,9 @@ to visualize dependency graphs and find unused definitions. - Yves Bertot ([**@ybertot**](https://github.com/ybertot)) - License: [GNU Lesser General Public License v2.1](LICENSE) - Compatible Coq versions: master (use the corresponding branch or release for other Coq versions) -- Compatible OCaml versions: 4.05.0 or later - Additional dependencies: - - autoconf (except for releases) - [OCamlgraph](https://github.com/backtracking/ocamlgraph) + - [Dune](https://dune.build) 2.5 or later - Coq namespace: `dpdgraph` - Related publication(s): none @@ -72,33 +71,12 @@ You can: First download the archive and unpack it (or clone the repository), and change directory to the `coq-dpdgraph` directory. -Depending on how you got hold of the directory, you may be in one of three situations: - - 1/ Makefile is present - - You should type the following command. +To compile the plugin and the Coq .v files, type $ make && make install - 2/ configure is present, but no Makefile - - You should type the following command. - - $ ./configure && make && make install - - 3/ configure is not present, Makefile is not present - - You should type the following command. - - $ autoconf - $ configure && make && make install - -By default, compilation will fail if there is any warning emitted by -the ocaml compiler. This can be disabled by type - - make WARN_ERR= - -instead of `make` in all previous commands. +The plugin is built using Dune. The `Makefile` is just a wrapper around +common Dune commands. ### Install using opam @@ -113,9 +91,9 @@ If you install the archive by cloning the git repository, you have a sub-directory containing test files. These can be tested using the following command. - $ make -s test + $ make test -to check if everything is ok. +to check if everything is ok. The tests are run using Dune. ## How to use it @@ -304,6 +282,42 @@ Each tool can then pick the attributes that it is able to handle; they are not supposed to raise an error whenever there is an unknown attribute. +## Dune + +The plugin, .v files and tests are built using Dune. The Makefile is a wrapper +around the common Dune commands. You can also use Dune directly, for example + + $ dune build theories/ + +Which will build the plugin and the .v files. The tests can be built with + + $ dune test tests/ + +The tests are [cram +tests](https://dune.readthedocs.io/en/stable/tests.html#cram-tests) and are +simply shell commands followed by expected outputs. + +When a test fails due to a differing output, Dune will complain. In order to +update the tests you can do + + $ make promote + +Which calls `dune promote` and updates the tests. + +## Nix + +In order to quickly setup a development environment, you can use Nix. The +commands you need to run are: + +``` +nix-shell -p coq_8_16 \ + coq_8_16.ocamlPackages.ocamlgraph \ + coq_8_16.ocamlPackages.findlib \ + coq_8_16.ocamlPackages.ocaml \ + coq_8_16.ocamlPackages.dune_3 \ + coq_8_16.ocamlPackages.ocaml-lsp +``` + ## More information Also see: diff --git a/configure.ac b/configure.ac deleted file mode 100644 index 36fcf4eb2..000000000 --- a/configure.ac +++ /dev/null @@ -1,228 +0,0 @@ -#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# This file is part of the DpdGraph tools. -# Copyright (C) 2009-2017 Anne Pacalet (Anne.Pacalet@free.fr) -# and Yves Bertot (Yves.Bertot@inria.fr) -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# This file is distributed under the terms of the -# GNU Lesser General Public License Version 2.1 -#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# the script generated by autoconf from this input -# will set several variables: (see AC_SUBST at the end of this file) -#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -AC_INIT(coq-dpdgraph,1.0) -AC_MSG_NOTICE(AC_PACKAGE_NAME version AC_PACKAGE_VERSION) - -#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -new_section() { - title="~~ $1 " - banner=$(echo "$title" | sed -e 's/./~/g') - AC_MSG_NOTICE($banner) - AC_MSG_NOTICE($title) - AC_MSG_NOTICE($banner) -} -#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -new_section "OCaml compilers" - -AC_CHECK_PROG(OCAMLC,ocamlc,ocamlc,no) -if test "$OCAMLC" = no ; then - AC_MSG_ERROR(Cannot find ocamlc.) -fi - -AC_MSG_CHECKING(ocamlc version) -OCAMLVERSION=$($OCAMLC -version) -AC_MSG_RESULT($OCAMLVERSION) -case $OCAMLVERSION in - 0.*|1.*|2.*|3.*) - AC_MSG_ERROR(AC_PACKAGE_NAME needs ocaml version 4.00.0 or higher) - ;; -esac - -AC_MSG_CHECKING(ocamlc -safe-string option) -case $OCAMLVERSION in - 4.00.*|4.01.*) - AC_MSG_RESULT(no) - ;; - *) - OCAML_EXTRA_OPTS="-safe-string"; AC_MSG_RESULT(yes) - ;; -esac - -AC_MSG_CHECKING(ocaml library path) -OCAMLLIB=$($OCAMLC -where | tr -d '\r') -AC_MSG_RESULT($OCAMLLIB) - -# then we look for ocamlopt; if not present, we issue a warning -# if the version is not the same, we also discard it -# we set OCAMLBEST to "opt" or "byte", whether ocamlopt is available or not -AC_CHECK_PROG(OCAMLOPT,ocamlopt,ocamlopt,no) -OCAMLBEST=byte -if test "$OCAMLOPT" = no ; then - AC_MSG_WARN(cannot find ocamlopt; bytecode compilation only.) -else - AC_MSG_CHECKING(ocamlopt version) - TMPVERSION=$($OCAMLOPT -version) - if test "$TMPVERSION" != "$OCAMLVERSION" ; then - AC_MSG_RESULT($TMPVERSION) - AC_MSG_WARN(version differs from ocamlc; ocamlopt discarded.) - OCAMLOPT=no - else - AC_MSG_RESULT(ok) - OCAMLBEST=opt - fi -fi - -AC_CHECK_PROG(OCAMLCDOTOPT,ocamlc.opt,ocamlc.opt,no) -if test "$OCAMLCDOTOPT" != no ; then - AC_MSG_CHECKING(ocamlc.opt version) - TMPVERSION=$($OCAMLCDOTOPT -version) - if test "$TMPVERSION" != "$OCAMLVERSION" ; then - AC_MSG_RESULT($TMPVERSION) - AC_MSG_WARN(version differs from ocamlc; ocamlc.opt discarded.) - else - AC_MSG_RESULT(ok) - OCAMLC=$OCAMLCDOTOPT - fi -fi - -AC_CHECK_PROG(OCAMLOPTDOTOPT,ocamlopt.opt,ocamlopt.opt,no) -if test "$OCAMLOPTDOTOPT" != no ; then - AC_MSG_CHECKING(ocamlc.opt version) - TMPVERSION=$($OCAMLOPTDOTOPT -version) - if test "$TMPVERSION" != "$OCAMLVERSION" ; then - AC_MSG_RESULT($TMPVERSION) - AC_MSG_WARN(version differs from ocamlc; ocamlopt.opt discarded.) - else - AC_MSG_RESULT(ok) - OCAMLOPT=$OCAMLOPTDOTOPT - fi -fi - -# ocamldep, ocamllex and ocamlyacc should also be present in the path -AC_CHECK_PROG(OCAMLDEP,ocamldep,ocamldep,no) -if test "$OCAMLDEP" = no ; then - AC_MSG_ERROR(Cannot find ocamldep.) -fi - -AC_CHECK_PROG(OCAMLLEX,ocamllex,ocamllex,no) -if test "$OCAMLLEX" = no ; then - AC_MSG_ERROR(Cannot find ocamllex.) -else - AC_CHECK_PROG(OCAMLLEXDOTOPT,ocamllex.opt,ocamllex.opt,no) - if test "$OCAMLLEXDOTOPT" != no ; then - OCAMLLEX=$OCAMLLEXDOTOPT - fi -fi - -AC_CHECK_PROG(OCAMLYACC,ocamlyacc,ocamlyacc,no) -if test "$OCAMLYACC" = no ; then - AC_MSG_ERROR(Cannot find ocamlyacc.) -fi - -AC_CHECK_PROG(OCAMLDOC,ocamldoc,ocamldoc,true) -if test "$OCAMLDOC" = true ; then - AC_MSG_WARN(Cannot find ocamldoc) -else - AC_CHECK_PROG(OCAMLDOCOPT,ocamldoc.opt,ocamldoc.opt,no) - if test "$OCAMLDOCOPT" != no ; then - OCAMLDOC=$OCAMLDOCOPT - fi -fi - -#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -new_section "ocamlgraph" - -AC_CHECK_PROG(OCAMLFIND,ocamlfind,ocamlfind,no) -if test "$OCAMLFIND" = "no" ; then - AC_MSG_WARN(No ocamlfind detected) -else - AC_MSG_CHECKING(ocamlfind compatibility) - OCAMLLIB_BY_FINDLIB=$(ocamlfind printconf stdlib | tr -d '\r') - if test "$OCAMLLIB_BY_FINDLIB" = "$OCAMLLIB" ; then - AC_MSG_RESULT(yes) - else - AC_MSG_RESULT(no) - AC_MSG_WARN(ocamlfind detected but disabled. Standard libraries differ:) - echo " ocamlc: '$OCAMLLIB'" - echo " ocamlfind: '$OCAMLLIB_BY_FINDLIB'" - OCAMLFIND="no" - fi -fi - -AC_MSG_CHECKING(ocamlgraph package) -if test "$OCAMLFIND" = "no"; then - if test -f "$OCAMLLIB/ocamlgraph/graph.cmxa" ; then - OCAMLGRAPH=yes - else - OCAMLGRAPH=no - fi - OCAMLGRAPH_PATH=+ocamlgraph -else - OCAMLGRAPH_PATH=$(ocamlfind query ocamlgraph | tr -d '\r') - if test "$OCAMLGRAPH_PATH" = "" ;then - OCAMLGRAPH=no - fi -fi - -if test "$OCAMLGRAPH" = no ; then - AC_MSG_RESULT(no) - AC_MSG_ERROR(ocamlgraph is not found.) -else - AC_MSG_RESULT($OCAMLGRAPH_PATH) -fi - -#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -new_section "Coq" - -AC_CHECK_PROG(COQC,coqc,coqc,no) -if test "$COQC" = no ; then - AC_MSG_ERROR(Cannot find coqc.) -fi - -AC_MSG_CHECKING(coq version) -COQVERSION=$($COQC -v | sed -n -e 's|.*version *\(.*\)$|\1|p' ) -AC_MSG_RESULT($COQVERSION) - -case $COQVERSION in - 8.[[0-9]][[^0-9]]*|8.10*) - AC_MSG_ERROR(AC_PACKAGE_NAME needs Coq version 8.11 or higher) - ;; -esac - -AC_CHECK_PROG(COQ_MAKEFILE,coq_makefile,coq_makefile,no) -if test "$COQ_MAKEFILE" = no ; then - AC_MSG_ERROR(cannot find coq_makefile.) -fi - -BINDIR_PRE=$(which coqc) -BINDIR=$(dirname $BINDIR_PRE) - -#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -new_section "creating Makefile" - -# substitutions to perform -AC_SUBST(PACKAGE_NAME) -AC_SUBST(PACKAGE_VERSION) - -AC_SUBST(OCAMLC) -AC_SUBST(OCAMLOPT) -AC_SUBST(OCAMLDEP) -AC_SUBST(OCAMLLEX) -AC_SUBST(OCAMLYACC) -# AC_SUBST(OCAMLDOC) TODO: use it in Makefile -# AC_SUBST(OCAMLBEST) TODO: use it in Makefile -# AC_SUBST(OCAMLVERSION) -# AC_SUBST(OCAMLLIB) -AC_SUBST(OCAML_EXTRA_OPTS) - -AC_SUBST(COQC) -AC_SUBST(COQ_MAKEFILE) - -AC_SUBST(BINDIR) -AC_SUBST(OCAMLGRAPH_PATH) - -# Finally create the Makefile from Makefile.in -AC_OUTPUT(Makefile) -chmod a-w Makefile - -#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/coq-dpdgraph.opam b/coq-dpdgraph.opam index bcd1c6a62..362bd214b 100644 --- a/coq-dpdgraph.opam +++ b/coq-dpdgraph.opam @@ -1,3 +1,6 @@ +# This file was generated from `meta.yml`, please do not edit manually. +# Follow the instructions on https://github.com/coq-community/templates to regenerate. + opam-version: "2.0" maintainer: "palmskog@gmail.com" version: "dev" @@ -7,23 +10,17 @@ dev-repo: "git+https://github.com/coq-community/coq-dpdgraph.git" bug-reports: "https://github.com/coq-community/coq-dpdgraph/issues" license: "LGPL-2.1-only" -synopsis: "Compute dependencies between Coq objects (definitions, theorems) and produce graphs" +synopsis: "Compute dependencies between Coq objects (definitions, theorems) and produce +graphs" description: """ Coq plugin that extracts the dependencies between Coq objects, and produces files with dependency information. Includes tools to visualize dependency graphs and find unused definitions.""" -build: [ - ["autoconf"] {dev} - ["./configure"] - [make "-j%{jobs}%" "WARN_ERR="] -] -run-test: [make "test-suite"] -install: [make "install" "BINDIR=%{bin}%"] +build: ["dune" "build" "-p" name "-j" jobs "@runtest" {with-test}] depends: [ - "ocaml" {>= "4.05.0"} + "dune" {>= "3.3"} "coq" {= "dev"} - "conf-autoconf" {build & dev} "ocamlgraph" ] diff --git a/dpdgraph.mllib b/dpdgraph.mllib deleted file mode 100644 index 5b14f9d77..000000000 --- a/dpdgraph.mllib +++ /dev/null @@ -1,2 +0,0 @@ -Searchdepend -Graphdepend diff --git a/dune-project b/dune-project new file mode 100644 index 000000000..47b52fc0f --- /dev/null +++ b/dune-project @@ -0,0 +1,5 @@ +(lang dune 3.3) + +(using coq 0.3) + +(name coq-dpdgraph) diff --git a/meta.yml b/meta.yml index ec925f4be..bd8554945 100644 --- a/meta.yml +++ b/meta.yml @@ -7,9 +7,12 @@ community: true action: true plugin: true branch: 'coq-master' +dune: true +dune_version: '3.6' -synopsis: >- - Compute dependencies between Coq objects (definitions, theorems) and produce graphs +synopsis: |- + Compute dependencies between Coq objects (definitions, theorems) and produce + graphs description: |- Coq plugin that extracts the dependencies between Coq objects, @@ -39,16 +42,7 @@ supported_coq_versions: text: master (use the corresponding branch or release for other Coq versions) opam: '{= "dev"}' -supported_ocaml_versions: - text: 4.05.0 or later - opam: '{>= "4.05.0"}' - dependencies: -- opam: - name: conf-autoconf - version: '{build & dev}' - description: |- - autoconf (except for releases) - opam: name: ocamlgraph description: |- @@ -94,33 +88,12 @@ build: |- First download the archive and unpack it (or clone the repository), and change directory to the `coq-dpdgraph` directory. - Depending on how you got hold of the directory, you may be in one of three situations: - - 1/ Makefile is present - - You should type the following command. - + To compile the plugin and the Coq .v files, type + $ make && make install - 2/ configure is present, but no Makefile - - You should type the following command. - - $ ./configure && make && make install - - 3/ configure is not present, Makefile is not present - - You should type the following command. - - $ autoconf - $ configure && make && make install - - By default, compilation will fail if there is any warning emitted by - the ocaml compiler. This can be disabled by type - - make WARN_ERR= - - instead of `make` in all previous commands. + The plugin is built using Dune. The `Makefile` is just a wrapper around + common Dune commands. ### Install using opam @@ -135,9 +108,9 @@ build: |- a sub-directory containing test files. These can be tested using the following command. - $ make -s test + $ make test - to check if everything is ok. + to check if everything is ok. The tests are run using Dune. documentation: | ## How to use it @@ -326,7 +299,43 @@ documentation: | Each tool can then pick the attributes that it is able to handle; they are not supposed to raise an error whenever there is an unknown attribute. - + + ## Dune + + The plugin, .v files and tests are built using Dune. The Makefile is a wrapper + around the common Dune commands. You can also use Dune directly, for example + + $ dune build theories/ + + Which will build the plugin and the .v files. The tests can be built with + + $ dune test tests/ + + The tests are [cram + tests](https://dune.readthedocs.io/en/stable/tests.html#cram-tests) and are + simply shell commands followed by expected outputs. + + When a test fails due to a differing output, Dune will complain. In order to + update the tests you can do + + $ make promote + + Which calls `dune promote` and updates the tests. + + ## Nix + + In order to quickly setup a development environment, you can use Nix. The + commands you need to run are: + + ``` + nix-shell -p coq_8_16 \ + coq_8_16.ocamlPackages.ocamlgraph \ + coq_8_16.ocamlPackages.findlib \ + coq_8_16.ocamlPackages.ocaml \ + coq_8_16.ocamlPackages.dune_3 \ + coq_8_16.ocamlPackages.ocaml-lsp + ``` + ## More information Also see: diff --git a/dpd2dot.ml b/src/dpd2dot.ml similarity index 100% rename from dpd2dot.ml rename to src/dpd2dot.ml diff --git a/dpd_compute.ml b/src/dpd_compute.ml similarity index 100% rename from dpd_compute.ml rename to src/dpd_compute.ml diff --git a/dpd_dot.ml b/src/dpd_dot.ml similarity index 100% rename from dpd_dot.ml rename to src/dpd_dot.ml diff --git a/dpd_lex.mll b/src/dpd_lex.mll similarity index 100% rename from dpd_lex.mll rename to src/dpd_lex.mll diff --git a/dpd_parse.mly b/src/dpd_parse.mly similarity index 100% rename from dpd_parse.mly rename to src/dpd_parse.mly diff --git a/src/dpdgraph.mlpack b/src/dpdgraph.mlpack new file mode 100644 index 000000000..e69de29bb diff --git a/dpdusage.ml b/src/dpdusage.ml similarity index 100% rename from dpdusage.ml rename to src/dpdusage.ml diff --git a/src/dune b/src/dune new file mode 100644 index 000000000..be5077759 --- /dev/null +++ b/src/dune @@ -0,0 +1,42 @@ +(ocamllex dpd_lex) + +(ocamlyacc dpd_parse) + +(coq.pp (modules graphdepend)) + +(coq.pp (modules searchdepend)) + +(library + (name dpdgraph) + (public_name coq-dpdgraph.plugin) + (flags :standard -rectypes -w -3-9-27-32) + (modules searchdepend graphdepend) + (libraries coq-core.plugins.ltac)) + +(library + (name version) + (modules version)) + +(library + (name dpd_compute) + (modules dpd_compute) + (libraries ocamlgraph)) + +(library + (name dpd_lex) + (modules dpd_lex dpd_parse) + (libraries dpd_compute)) + +(executable + (name dpd2dot) + (public_name dpd2dot) + (libraries dpd_compute dpd_lex version) + (modules dpd2dot dpd_dot) + (package coq-dpdgraph)) + +(executable + (name dpdusage) + (public_name dpdusage) + (libraries dpd_compute dpd_lex version) + (modules dpdusage) + (package coq-dpdgraph)) diff --git a/graphdepend.mlg b/src/graphdepend.mlg similarity index 100% rename from graphdepend.mlg rename to src/graphdepend.mlg diff --git a/searchdepend.mlg b/src/searchdepend.mlg similarity index 100% rename from searchdepend.mlg rename to src/searchdepend.mlg diff --git a/src/version.ml b/src/version.ml new file mode 100644 index 000000000..530e09475 --- /dev/null +++ b/src/version.ml @@ -0,0 +1 @@ +let version = "1.0" diff --git a/tests/Morph.dot.oracle b/tests/Morph.dot.oracle deleted file mode 100644 index 21776ee5e..000000000 --- a/tests/Morph.dot.oracle +++ /dev/null @@ -1,37 +0,0 @@ -digraph tests/Morph { - graph [ratio=0.5] - node [style=filled] -Morph_rw [label="rw", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Morph_FsmpM [label="FsmpM", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Morph_FsmpM_Proper [label="FsmpM_Proper", URL=, fillcolor="#FFB57F"] ; -Morph_Fsmp [label="Fsmp", URL=, fillcolor="#FACDEF"] ; -Morph_FequivR [label="FequivR", URL=, fillcolor="#7FFFD4"] ; -Morph_FequivR_Transitive [label="FequivR_Transitive", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Morph_FequivR_Symmetric [label="FequivR_Symmetric", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Morph_FequivR_Reflexive [label="FequivR_Reflexive", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Morph_FequivR_relation [label="FequivR_relation", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Morph_Fequiv_trans [label="Fequiv_trans", URL=, fillcolor="#FFB57F"] ; -Morph_Fequiv_sym [label="Fequiv_sym", URL=, fillcolor="#FFB57F"] ; -Morph_Fequiv_refl [label="Fequiv_refl", URL=, fillcolor="#FFB57F"] ; -Morph_Fequiv [label="Fequiv", URL=, fillcolor="#FACDEF"] ; -Morph_F [label="F", URL=, fillcolor="#FACDEF"] ; - Morph_rw -> Morph_FsmpM_Proper [] ; - Morph_rw -> Morph_FequivR [] ; - Morph_FsmpM -> Morph_FsmpM_Proper [] ; - Morph_FsmpM_Proper -> Morph_Fsmp [] ; - Morph_FsmpM_Proper -> Morph_Fequiv [] ; - Morph_Fsmp -> Morph_F [] ; - Morph_FequivR -> Morph_Fequiv_trans [] ; - Morph_FequivR -> Morph_Fequiv_sym [] ; - Morph_FequivR -> Morph_Fequiv_refl [] ; - Morph_FequivR_Transitive -> Morph_Fequiv_trans [] ; - Morph_FequivR_Symmetric -> Morph_Fequiv_sym [] ; - Morph_FequivR_Reflexive -> Morph_Fequiv_refl [] ; - Morph_FequivR_relation -> Morph_Fequiv [] ; - Morph_Fequiv_trans -> Morph_Fequiv [] ; - Morph_Fequiv_sym -> Morph_Fequiv [] ; - Morph_Fequiv_refl -> Morph_Fequiv [] ; - Morph_Fequiv -> Morph_F [] ; -subgraph cluster_Morph { label="Morph"; fillcolor="#FFFFC3"; labeljust=l; style=filled -Morph_F; Morph_Fequiv; Morph_Fequiv_refl; Morph_Fequiv_sym; Morph_Fequiv_trans; Morph_FequivR_relation; Morph_FequivR_Reflexive; Morph_FequivR_Symmetric; Morph_FequivR_Transitive; Morph_FequivR; Morph_Fsmp; Morph_FsmpM_Proper; Morph_FsmpM; Morph_rw; }; -} /* END */ diff --git a/tests/Morph.dpd.oracle b/tests/Morph.dpd.oracle deleted file mode 100644 index 58813a56d..000000000 --- a/tests/Morph.dpd.oracle +++ /dev/null @@ -1,50 +0,0 @@ -N: 14 "F" [body=no, kind=cnst, prop=no, path="Morph", ]; -N: 13 "Fequiv" [body=no, kind=cnst, prop=no, path="Morph", ]; -N: 5 "FequivR" [body=yes, kind=cnst, prop=yes, path="Morph", ]; -N: 8 "FequivR_Reflexive" [body=yes, kind=cnst, prop=yes, path="Morph", ]; -N: 7 "FequivR_Symmetric" [body=yes, kind=cnst, prop=yes, path="Morph", ]; -N: 6 "FequivR_Transitive" [body=yes, kind=cnst, prop=yes, path="Morph", ]; -N: 9 "FequivR_relation" [body=yes, kind=cnst, prop=yes, path="Morph", ]; -N: 12 "Fequiv_refl" [body=no, kind=cnst, prop=yes, path="Morph", ]; -N: 11 "Fequiv_sym" [body=no, kind=cnst, prop=yes, path="Morph", ]; -N: 10 "Fequiv_trans" [body=no, kind=cnst, prop=yes, path="Morph", ]; -N: 4 "Fsmp" [body=no, kind=cnst, prop=no, path="Morph", ]; -N: 2 "FsmpM" [body=yes, kind=cnst, prop=yes, path="Morph", ]; -N: 3 "FsmpM_Proper" [body=no, kind=cnst, prop=yes, path="Morph", ]; -N: 1 "rw" [body=yes, kind=cnst, prop=yes, path="Morph", ]; -E: 1 3 [weight=1, ]; -E: 1 4 [weight=5, ]; -E: 1 5 [weight=1, ]; -E: 1 13 [weight=8, ]; -E: 1 14 [weight=6, ]; -E: 2 3 [weight=1, ]; -E: 2 4 [weight=3, ]; -E: 2 13 [weight=4, ]; -E: 2 14 [weight=6, ]; -E: 3 4 [weight=1, ]; -E: 3 13 [weight=2, ]; -E: 3 14 [weight=4, ]; -E: 4 14 [weight=2, ]; -E: 5 10 [weight=1, ]; -E: 5 11 [weight=1, ]; -E: 5 12 [weight=1, ]; -E: 5 13 [weight=2, ]; -E: 5 14 [weight=2, ]; -E: 6 10 [weight=1, ]; -E: 6 13 [weight=1, ]; -E: 6 14 [weight=1, ]; -E: 7 11 [weight=1, ]; -E: 7 13 [weight=1, ]; -E: 7 14 [weight=1, ]; -E: 8 12 [weight=1, ]; -E: 8 13 [weight=1, ]; -E: 8 14 [weight=1, ]; -E: 9 13 [weight=2, ]; -E: 9 14 [weight=2, ]; -E: 10 13 [weight=3, ]; -E: 10 14 [weight=3, ]; -E: 11 13 [weight=2, ]; -E: 11 14 [weight=2, ]; -E: 12 13 [weight=1, ]; -E: 12 14 [weight=1, ]; -E: 13 14 [weight=2, ]; diff --git a/tests/Morph.t b/tests/Morph.t new file mode 100644 index 000000000..c267ced2a --- /dev/null +++ b/tests/Morph.t @@ -0,0 +1,332 @@ + $ coqc -R . dpdgraph.tests Morph.v + + $ coqtop -R . dpdgraph.tests -R ../theories dpdgraph -I ../src < MorphCmd.v | sed -e 's/Welcome to Coq.*/Welcome to Coq/' + + Coq < + Coq < Coq < + Coq < Coq < + Coq < + Coq < Coq < + Coq < + Coq < + Welcome to Coq + [Loading ML file coq-dpdgraph.plugin ... done] + Fetching opaque proofs from disk for dpdgraph.tests.Morph + Info: output dependencies in file Morph.dpd + Fetching opaque proofs from disk for Coq.Classes.Morphisms + Info: output dependencies in file Morph_rw.dpd + + $ cat Morph.dpd + N: 14 "F" [body=no, kind=cnst, prop=no, path="Morph", ]; + N: 13 "Fequiv" [body=no, kind=cnst, prop=no, path="Morph", ]; + N: 5 "FequivR" [body=yes, kind=cnst, prop=yes, path="Morph", ]; + N: 8 "FequivR_Reflexive" [body=yes, kind=cnst, prop=yes, path="Morph", ]; + N: 7 "FequivR_Symmetric" [body=yes, kind=cnst, prop=yes, path="Morph", ]; + N: 6 "FequivR_Transitive" [body=yes, kind=cnst, prop=yes, path="Morph", ]; + N: 9 "FequivR_relation" [body=yes, kind=cnst, prop=yes, path="Morph", ]; + N: 12 "Fequiv_refl" [body=no, kind=cnst, prop=yes, path="Morph", ]; + N: 11 "Fequiv_sym" [body=no, kind=cnst, prop=yes, path="Morph", ]; + N: 10 "Fequiv_trans" [body=no, kind=cnst, prop=yes, path="Morph", ]; + N: 4 "Fsmp" [body=no, kind=cnst, prop=no, path="Morph", ]; + N: 2 "FsmpM" [body=yes, kind=cnst, prop=yes, path="Morph", ]; + N: 3 "FsmpM_Proper" [body=no, kind=cnst, prop=yes, path="Morph", ]; + N: 1 "rw" [body=yes, kind=cnst, prop=yes, path="Morph", ]; + E: 1 3 [weight=1, ]; + E: 1 4 [weight=5, ]; + E: 1 5 [weight=1, ]; + E: 1 13 [weight=8, ]; + E: 1 14 [weight=6, ]; + E: 2 3 [weight=1, ]; + E: 2 4 [weight=3, ]; + E: 2 13 [weight=4, ]; + E: 2 14 [weight=6, ]; + E: 3 4 [weight=1, ]; + E: 3 13 [weight=2, ]; + E: 3 14 [weight=4, ]; + E: 4 14 [weight=2, ]; + E: 5 10 [weight=1, ]; + E: 5 11 [weight=1, ]; + E: 5 12 [weight=1, ]; + E: 5 13 [weight=2, ]; + E: 5 14 [weight=2, ]; + E: 6 10 [weight=1, ]; + E: 6 13 [weight=1, ]; + E: 6 14 [weight=1, ]; + E: 7 11 [weight=1, ]; + E: 7 13 [weight=1, ]; + E: 7 14 [weight=1, ]; + E: 8 12 [weight=1, ]; + E: 8 13 [weight=1, ]; + E: 8 14 [weight=1, ]; + E: 9 13 [weight=2, ]; + E: 9 14 [weight=2, ]; + E: 10 13 [weight=3, ]; + E: 10 14 [weight=3, ]; + E: 11 13 [weight=2, ]; + E: 11 14 [weight=2, ]; + E: 12 13 [weight=1, ]; + E: 12 14 [weight=1, ]; + E: 13 14 [weight=2, ]; + + $ dpd2dot Morph.dpd + Info: read file Morph.dpd + Info: Graph output in Morph.dot + + $ cat Morph.dot + digraph Morph { + graph [ratio=0.5] + node [style=filled] + Morph_rw [label="rw", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Morph_FsmpM [label="FsmpM", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Morph_FsmpM_Proper [label="FsmpM_Proper", URL=, fillcolor="#FFB57F"] ; + Morph_Fsmp [label="Fsmp", URL=, fillcolor="#FACDEF"] ; + Morph_FequivR [label="FequivR", URL=, fillcolor="#7FFFD4"] ; + Morph_FequivR_Transitive [label="FequivR_Transitive", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Morph_FequivR_Symmetric [label="FequivR_Symmetric", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Morph_FequivR_Reflexive [label="FequivR_Reflexive", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Morph_FequivR_relation [label="FequivR_relation", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Morph_Fequiv_trans [label="Fequiv_trans", URL=, fillcolor="#FFB57F"] ; + Morph_Fequiv_sym [label="Fequiv_sym", URL=, fillcolor="#FFB57F"] ; + Morph_Fequiv_refl [label="Fequiv_refl", URL=, fillcolor="#FFB57F"] ; + Morph_Fequiv [label="Fequiv", URL=, fillcolor="#FACDEF"] ; + Morph_F [label="F", URL=, fillcolor="#FACDEF"] ; + Morph_rw -> Morph_FsmpM_Proper [] ; + Morph_rw -> Morph_FequivR [] ; + Morph_FsmpM -> Morph_FsmpM_Proper [] ; + Morph_FsmpM_Proper -> Morph_Fsmp [] ; + Morph_FsmpM_Proper -> Morph_Fequiv [] ; + Morph_Fsmp -> Morph_F [] ; + Morph_FequivR -> Morph_Fequiv_trans [] ; + Morph_FequivR -> Morph_Fequiv_sym [] ; + Morph_FequivR -> Morph_Fequiv_refl [] ; + Morph_FequivR_Transitive -> Morph_Fequiv_trans [] ; + Morph_FequivR_Symmetric -> Morph_Fequiv_sym [] ; + Morph_FequivR_Reflexive -> Morph_Fequiv_refl [] ; + Morph_FequivR_relation -> Morph_Fequiv [] ; + Morph_Fequiv_trans -> Morph_Fequiv [] ; + Morph_Fequiv_sym -> Morph_Fequiv [] ; + Morph_Fequiv_refl -> Morph_Fequiv [] ; + Morph_Fequiv -> Morph_F [] ; + subgraph cluster_Morph { label="Morph"; fillcolor="#FFFFC3"; labeljust=l; style=filled + Morph_F; Morph_Fequiv; Morph_Fequiv_refl; Morph_Fequiv_sym; Morph_Fequiv_trans; Morph_FequivR_relation; Morph_FequivR_Reflexive; Morph_FequivR_Symmetric; Morph_FequivR_Transitive; Morph_FequivR; Morph_Fsmp; Morph_FsmpM_Proper; Morph_FsmpM; Morph_rw; }; + } /* END */ + + $ cat Morph_rw.dpd + N: 20 "Equivalence_PER" [body=yes, kind=cnst, prop=yes, path="RelationClasses", ]; + N: 33 "Equivalence_Symmetric" [body=yes, kind=cnst, prop=yes, path="RelationClasses", ]; + N: 32 "Equivalence_Transitive" [body=yes, kind=cnst, prop=yes, path="RelationClasses", ]; + N: 18 "F" [body=no, kind=cnst, prop=no, path="Morph", ]; + N: 21 "Fequiv" [body=no, kind=cnst, prop=no, path="Morph", ]; + N: 22 "FequivR" [body=yes, kind=cnst, prop=yes, path="Morph", ]; + N: 24 "Fequiv_refl" [body=no, kind=cnst, prop=yes, path="Morph", ]; + N: 25 "Fequiv_sym" [body=no, kind=cnst, prop=yes, path="Morph", ]; + N: 23 "Fequiv_trans" [body=no, kind=cnst, prop=yes, path="Morph", ]; + N: 19 "Fsmp" [body=no, kind=cnst, prop=no, path="Morph", ]; + N: 17 "FsmpM_Proper" [body=no, kind=cnst, prop=yes, path="Morph", ]; + N: 41 "PER_Symmetric" [body=yes, kind=cnst, prop=yes, path="RelationClasses", ]; + N: 43 "PER_Transitive" [body=yes, kind=cnst, prop=yes, path="RelationClasses", ]; + N: 36 "Proper" [body=yes, kind=cnst, prop=no, path="Morphisms", ]; + N: 29 "Reflexive" [body=yes, kind=cnst, prop=no, path="RelationClasses", ]; + N: 28 "Symmetric" [body=yes, kind=cnst, prop=no, path="RelationClasses", ]; + N: 31 "Transitive" [body=yes, kind=cnst, prop=no, path="RelationClasses", ]; + N: 38 "flip" [body=yes, kind=cnst, prop=no, path="Basics", ]; + N: 39 "impl" [body=yes, kind=cnst, prop=no, path="Basics", ]; + N: 30 "relation" [body=yes, kind=cnst, prop=no, path="Relation_Definitions", ]; + N: 37 "respectful" [body=yes, kind=cnst, prop=no, path="Morphisms", ]; + N: 15 "rw" [body=yes, kind=cnst, prop=yes, path="Morph", ]; + N: 42 "symmetry" [body=yes, kind=cnst, prop=yes, path="RelationClasses", ]; + N: 16 "trans_sym_co_inv_impl_morphism" [body=yes, kind=cnst, prop=yes, path="Morphisms", ]; + N: 40 "trans_sym_co_inv_impl_morphism_obligation_1" [body=yes, kind=cnst, prop=yes, path="Morphisms", ]; + N: 44 "transitivity" [body=yes, kind=cnst, prop=yes, path="RelationClasses", ]; + N: 26 "Equivalence" [kind=inductive, prop=no, path="RelationClasses", ]; + N: 34 "PER" [kind=inductive, prop=no, path="RelationClasses", ]; + N: 27 "Build_Equivalence" [kind=construct, prop=yes, path="RelationClasses", ]; + N: 35 "Build_PER" [kind=construct, prop=yes, path="RelationClasses", ]; + E: 15 16 [weight=1, ]; + E: 15 17 [weight=1, ]; + E: 15 18 [weight=6, ]; + E: 15 19 [weight=5, ]; + E: 15 20 [weight=1, ]; + E: 15 21 [weight=8, ]; + E: 15 22 [weight=1, ]; + E: 16 30 [weight=3, ]; + E: 16 34 [weight=3, ]; + E: 16 36 [weight=1, ]; + E: 16 37 [weight=1, ]; + E: 16 38 [weight=1, ]; + E: 16 39 [weight=1, ]; + E: 16 40 [weight=1, ]; + E: 17 18 [weight=4, ]; + E: 17 19 [weight=1, ]; + E: 17 21 [weight=2, ]; + E: 17 36 [weight=1, ]; + E: 17 37 [weight=1, ]; + E: 19 18 [weight=2, ]; + E: 20 26 [weight=2, ]; + E: 20 30 [weight=2, ]; + E: 20 32 [weight=1, ]; + E: 20 33 [weight=1, ]; + E: 20 34 [weight=1, ]; + E: 20 35 [weight=1, ]; + E: 21 18 [weight=2, ]; + E: 22 18 [weight=2, ]; + E: 22 21 [weight=2, ]; + E: 22 23 [weight=1, ]; + E: 22 24 [weight=1, ]; + E: 22 25 [weight=1, ]; + E: 22 26 [weight=1, ]; + E: 22 27 [weight=1, ]; + E: 23 18 [weight=3, ]; + E: 23 21 [weight=3, ]; + E: 24 18 [weight=1, ]; + E: 24 21 [weight=1, ]; + E: 25 18 [weight=2, ]; + E: 25 21 [weight=2, ]; + E: 26 28 [weight=1, ]; + E: 26 29 [weight=1, ]; + E: 26 30 [weight=1, ]; + E: 26 31 [weight=1, ]; + E: 27 28 [weight=1, ]; + E: 27 29 [weight=1, ]; + E: 27 30 [weight=1, ]; + E: 27 31 [weight=1, ]; + E: 28 30 [weight=2, ]; + E: 29 30 [weight=2, ]; + E: 31 30 [weight=2, ]; + E: 32 26 [weight=3, ]; + E: 32 30 [weight=2, ]; + E: 32 31 [weight=2, ]; + E: 33 26 [weight=3, ]; + E: 33 28 [weight=2, ]; + E: 33 30 [weight=2, ]; + E: 34 28 [weight=1, ]; + E: 34 30 [weight=1, ]; + E: 34 31 [weight=1, ]; + E: 35 28 [weight=1, ]; + E: 35 30 [weight=1, ]; + E: 35 31 [weight=1, ]; + E: 36 30 [weight=2, ]; + E: 37 30 [weight=5, ]; + E: 40 30 [weight=2, ]; + E: 40 34 [weight=2, ]; + E: 40 37 [weight=1, ]; + E: 40 38 [weight=1, ]; + E: 40 39 [weight=1, ]; + E: 40 41 [weight=1, ]; + E: 40 42 [weight=1, ]; + E: 40 43 [weight=1, ]; + E: 40 44 [weight=1, ]; + E: 41 28 [weight=2, ]; + E: 41 30 [weight=2, ]; + E: 41 34 [weight=3, ]; + E: 42 28 [weight=2, ]; + E: 42 30 [weight=2, ]; + E: 43 30 [weight=2, ]; + E: 43 31 [weight=2, ]; + E: 43 34 [weight=3, ]; + E: 44 30 [weight=2, ]; + E: 44 31 [weight=2, ]; + + + $ dpd2dot Morph_rw.dpd + Info: read file Morph_rw.dpd + Info: Graph output in Morph_rw.dot + + $ cat Morph_rw.dot + digraph Morph_rw { + graph [ratio=0.5] + node [style=filled] + Morph_rw [label="rw", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Morphisms_trans_sym_co_inv_impl_morphism [label="trans_sym_co_inv_impl_morphism", URL=, fillcolor="#7FFFD4"] ; + Morph_FsmpM_Proper [label="FsmpM_Proper", URL=, fillcolor="#FFB57F"] ; + Morph_F [label="F", URL=, fillcolor="#FACDEF"] ; + Morph_Fsmp [label="Fsmp", URL=, fillcolor="#FACDEF"] ; + RelationClasses_Equivalence_PER [label="Equivalence_PER", URL=, fillcolor="#7FFFD4"] ; + Morph_Fequiv [label="Fequiv", URL=, fillcolor="#FACDEF"] ; + Morph_FequivR [label="FequivR", URL=, fillcolor="#7FFFD4"] ; + Morph_Fequiv_trans [label="Fequiv_trans", URL=, fillcolor="#FFB57F"] ; + Morph_Fequiv_refl [label="Fequiv_refl", URL=, fillcolor="#FFB57F"] ; + Morph_Fequiv_sym [label="Fequiv_sym", URL=, fillcolor="#FFB57F"] ; + RelationClasses_Equivalence [label="Equivalence", URL=, fillcolor="#E2CDFA"] ; + RelationClasses_Build_Equivalence [label="Build_Equivalence", URL=, fillcolor="#7FAAFF"] ; + RelationClasses_Symmetric [label="Symmetric", URL=, fillcolor="#F070D1"] ; + RelationClasses_Reflexive [label="Reflexive", URL=, fillcolor="#F070D1"] ; + Relation_Definitions_relation [label="relation", URL=, fillcolor="#F070D1"] ; + RelationClasses_Transitive [label="Transitive", URL=, fillcolor="#F070D1"] ; + RelationClasses_Equivalence_Transitive [label="Equivalence_Transitive", URL=, fillcolor="#7FFFD4"] ; + RelationClasses_Equivalence_Symmetric [label="Equivalence_Symmetric", URL=, fillcolor="#7FFFD4"] ; + RelationClasses_PER [label="PER", URL=, fillcolor="#E2CDFA"] ; + RelationClasses_Build_PER [label="Build_PER", URL=, fillcolor="#7FAAFF"] ; + Morphisms_Proper [label="Proper", URL=, fillcolor="#F070D1"] ; + Morphisms_respectful [label="respectful", URL=, fillcolor="#F070D1"] ; + Basics_flip [label="flip", URL=, fillcolor="#F070D1"] ; + Basics_impl [label="impl", URL=, fillcolor="#F070D1"] ; + Morphisms_trans_sym_co_inv_impl_morphism_obligation_1 [label="trans_sym_co_inv_impl_morphism_obligation_1", URL=, fillcolor="#7FFFD4"] ; + RelationClasses_PER_Symmetric [label="PER_Symmetric", URL=, fillcolor="#7FFFD4"] ; + RelationClasses_symmetry [label="symmetry", URL=, fillcolor="#7FFFD4"] ; + RelationClasses_PER_Transitive [label="PER_Transitive", URL=, fillcolor="#7FFFD4"] ; + RelationClasses_transitivity [label="transitivity", URL=, fillcolor="#7FFFD4"] ; + Morph_rw -> Morphisms_trans_sym_co_inv_impl_morphism [] ; + Morph_rw -> Morph_FsmpM_Proper [] ; + Morph_rw -> RelationClasses_Equivalence_PER [] ; + Morph_rw -> Morph_FequivR [] ; + Morphisms_trans_sym_co_inv_impl_morphism -> Morphisms_Proper [] ; + Morphisms_trans_sym_co_inv_impl_morphism -> Morphisms_trans_sym_co_inv_impl_morphism_obligation_1 [] ; + Morph_FsmpM_Proper -> Morph_Fsmp [] ; + Morph_FsmpM_Proper -> Morph_Fequiv [] ; + Morph_FsmpM_Proper -> Morphisms_Proper [] ; + Morph_FsmpM_Proper -> Morphisms_respectful [] ; + Morph_Fsmp -> Morph_F [] ; + RelationClasses_Equivalence_PER -> RelationClasses_Equivalence_Transitive [] ; + RelationClasses_Equivalence_PER -> RelationClasses_Equivalence_Symmetric [] ; + RelationClasses_Equivalence_PER -> RelationClasses_PER [] ; + RelationClasses_Equivalence_PER -> RelationClasses_Build_PER [] ; + Morph_Fequiv -> Morph_F [] ; + Morph_FequivR -> Morph_Fequiv_trans [] ; + Morph_FequivR -> Morph_Fequiv_refl [] ; + Morph_FequivR -> Morph_Fequiv_sym [] ; + Morph_FequivR -> RelationClasses_Equivalence [] ; + Morph_FequivR -> RelationClasses_Build_Equivalence [] ; + Morph_Fequiv_trans -> Morph_Fequiv [] ; + Morph_Fequiv_refl -> Morph_Fequiv [] ; + Morph_Fequiv_sym -> Morph_Fequiv [] ; + RelationClasses_Equivalence -> RelationClasses_Symmetric [] ; + RelationClasses_Equivalence -> RelationClasses_Reflexive [] ; + RelationClasses_Equivalence -> RelationClasses_Transitive [] ; + RelationClasses_Build_Equivalence -> RelationClasses_Symmetric [] ; + RelationClasses_Build_Equivalence -> RelationClasses_Reflexive [] ; + RelationClasses_Build_Equivalence -> RelationClasses_Transitive [] ; + RelationClasses_Symmetric -> Relation_Definitions_relation [] ; + RelationClasses_Reflexive -> Relation_Definitions_relation [] ; + RelationClasses_Transitive -> Relation_Definitions_relation [] ; + RelationClasses_Equivalence_Transitive -> RelationClasses_Equivalence [] ; + RelationClasses_Equivalence_Symmetric -> RelationClasses_Equivalence [] ; + RelationClasses_PER -> RelationClasses_Symmetric [] ; + RelationClasses_PER -> RelationClasses_Transitive [] ; + RelationClasses_Build_PER -> RelationClasses_Symmetric [] ; + RelationClasses_Build_PER -> RelationClasses_Transitive [] ; + Morphisms_Proper -> Relation_Definitions_relation [] ; + Morphisms_respectful -> Relation_Definitions_relation [] ; + Morphisms_trans_sym_co_inv_impl_morphism_obligation_1 -> Morphisms_respectful [] ; + Morphisms_trans_sym_co_inv_impl_morphism_obligation_1 -> Basics_flip [] ; + Morphisms_trans_sym_co_inv_impl_morphism_obligation_1 -> Basics_impl [] ; + Morphisms_trans_sym_co_inv_impl_morphism_obligation_1 -> RelationClasses_PER_Symmetric [] ; + Morphisms_trans_sym_co_inv_impl_morphism_obligation_1 -> RelationClasses_symmetry [] ; + Morphisms_trans_sym_co_inv_impl_morphism_obligation_1 -> RelationClasses_PER_Transitive [] ; + Morphisms_trans_sym_co_inv_impl_morphism_obligation_1 -> RelationClasses_transitivity [] ; + RelationClasses_PER_Symmetric -> RelationClasses_PER [] ; + RelationClasses_symmetry -> RelationClasses_Symmetric [] ; + RelationClasses_PER_Transitive -> RelationClasses_PER [] ; + RelationClasses_transitivity -> RelationClasses_Transitive [] ; + subgraph cluster_Basics { label="Basics"; fillcolor="#FFFFC3"; labeljust=l; style=filled + Basics_impl; Basics_flip; }; + subgraph cluster_RelationClasses { label="RelationClasses"; fillcolor="#FFFFC3"; labeljust=l; style=filled + RelationClasses_transitivity; RelationClasses_PER_Transitive; RelationClasses_symmetry; RelationClasses_PER_Symmetric; RelationClasses_Build_PER; RelationClasses_PER; RelationClasses_Equivalence_Symmetric; RelationClasses_Equivalence_Transitive; RelationClasses_Transitive; RelationClasses_Reflexive; RelationClasses_Symmetric; RelationClasses_Build_Equivalence; RelationClasses_Equivalence; RelationClasses_Equivalence_PER; }; + subgraph cluster_Morphisms { label="Morphisms"; fillcolor="#FFFFC3"; labeljust=l; style=filled + Morphisms_trans_sym_co_inv_impl_morphism_obligation_1; Morphisms_respectful; Morphisms_Proper; Morphisms_trans_sym_co_inv_impl_morphism; }; + subgraph cluster_Relation_Definitions { label="Relation_Definitions"; fillcolor="#FFFFC3"; labeljust=l; style=filled + Relation_Definitions_relation; }; + subgraph cluster_Morph { label="Morph"; fillcolor="#FFFFC3"; labeljust=l; style=filled + Morph_Fequiv_sym; Morph_Fequiv_refl; Morph_Fequiv_trans; Morph_FequivR; Morph_Fequiv; Morph_Fsmp; Morph_F; Morph_FsmpM_Proper; Morph_rw; }; + } /* END */ + diff --git a/tests/Morph.cmd b/tests/MorphCmd.v similarity index 100% rename from tests/Morph.cmd rename to tests/MorphCmd.v diff --git a/tests/Morph_rw.dot.oracle b/tests/Morph_rw.dot.oracle deleted file mode 100644 index 8bda340f5..000000000 --- a/tests/Morph_rw.dot.oracle +++ /dev/null @@ -1,96 +0,0 @@ -digraph tests/Morph_rw { - graph [ratio=0.5] - node [style=filled] -Morph_rw [label="rw", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Morphisms_trans_sym_co_inv_impl_morphism [label="trans_sym_co_inv_impl_morphism", URL=, fillcolor="#7FFFD4"] ; -Morph_FsmpM_Proper [label="FsmpM_Proper", URL=, fillcolor="#FFB57F"] ; -Morph_F [label="F", URL=, fillcolor="#FACDEF"] ; -Morph_Fsmp [label="Fsmp", URL=, fillcolor="#FACDEF"] ; -RelationClasses_Equivalence_PER [label="Equivalence_PER", URL=, fillcolor="#7FFFD4"] ; -Morph_Fequiv [label="Fequiv", URL=, fillcolor="#FACDEF"] ; -Morph_FequivR [label="FequivR", URL=, fillcolor="#7FFFD4"] ; -Morph_Fequiv_trans [label="Fequiv_trans", URL=, fillcolor="#FFB57F"] ; -Morph_Fequiv_refl [label="Fequiv_refl", URL=, fillcolor="#FFB57F"] ; -Morph_Fequiv_sym [label="Fequiv_sym", URL=, fillcolor="#FFB57F"] ; -RelationClasses_Equivalence [label="Equivalence", URL=, fillcolor="#E2CDFA"] ; -RelationClasses_Build_Equivalence [label="Build_Equivalence", URL=, fillcolor="#7FAAFF"] ; -RelationClasses_Symmetric [label="Symmetric", URL=, fillcolor="#F070D1"] ; -RelationClasses_Reflexive [label="Reflexive", URL=, fillcolor="#F070D1"] ; -Relation_Definitions_relation [label="relation", URL=, fillcolor="#F070D1"] ; -RelationClasses_Transitive [label="Transitive", URL=, fillcolor="#F070D1"] ; -RelationClasses_Equivalence_Transitive [label="Equivalence_Transitive", URL=, fillcolor="#7FFFD4"] ; -RelationClasses_Equivalence_Symmetric [label="Equivalence_Symmetric", URL=, fillcolor="#7FFFD4"] ; -RelationClasses_PER [label="PER", URL=, fillcolor="#E2CDFA"] ; -RelationClasses_Build_PER [label="Build_PER", URL=, fillcolor="#7FAAFF"] ; -Morphisms_Proper [label="Proper", URL=, fillcolor="#F070D1"] ; -Morphisms_respectful [label="respectful", URL=, fillcolor="#F070D1"] ; -Basics_flip [label="flip", URL=, fillcolor="#F070D1"] ; -Basics_impl [label="impl", URL=, fillcolor="#F070D1"] ; -Morphisms_trans_sym_co_inv_impl_morphism_obligation_1 [label="trans_sym_co_inv_impl_morphism_obligation_1", URL=, fillcolor="#7FFFD4"] ; -RelationClasses_PER_Symmetric [label="PER_Symmetric", URL=, fillcolor="#7FFFD4"] ; -RelationClasses_symmetry [label="symmetry", URL=, fillcolor="#7FFFD4"] ; -RelationClasses_PER_Transitive [label="PER_Transitive", URL=, fillcolor="#7FFFD4"] ; -RelationClasses_transitivity [label="transitivity", URL=, fillcolor="#7FFFD4"] ; - Morph_rw -> Morphisms_trans_sym_co_inv_impl_morphism [] ; - Morph_rw -> Morph_FsmpM_Proper [] ; - Morph_rw -> RelationClasses_Equivalence_PER [] ; - Morph_rw -> Morph_FequivR [] ; - Morphisms_trans_sym_co_inv_impl_morphism -> Morphisms_Proper [] ; - Morphisms_trans_sym_co_inv_impl_morphism -> Morphisms_trans_sym_co_inv_impl_morphism_obligation_1 [] ; - Morph_FsmpM_Proper -> Morph_Fsmp [] ; - Morph_FsmpM_Proper -> Morph_Fequiv [] ; - Morph_FsmpM_Proper -> Morphisms_Proper [] ; - Morph_FsmpM_Proper -> Morphisms_respectful [] ; - Morph_Fsmp -> Morph_F [] ; - RelationClasses_Equivalence_PER -> RelationClasses_Equivalence_Transitive [] ; - RelationClasses_Equivalence_PER -> RelationClasses_Equivalence_Symmetric [] ; - RelationClasses_Equivalence_PER -> RelationClasses_PER [] ; - RelationClasses_Equivalence_PER -> RelationClasses_Build_PER [] ; - Morph_Fequiv -> Morph_F [] ; - Morph_FequivR -> Morph_Fequiv_trans [] ; - Morph_FequivR -> Morph_Fequiv_refl [] ; - Morph_FequivR -> Morph_Fequiv_sym [] ; - Morph_FequivR -> RelationClasses_Equivalence [] ; - Morph_FequivR -> RelationClasses_Build_Equivalence [] ; - Morph_Fequiv_trans -> Morph_Fequiv [] ; - Morph_Fequiv_refl -> Morph_Fequiv [] ; - Morph_Fequiv_sym -> Morph_Fequiv [] ; - RelationClasses_Equivalence -> RelationClasses_Symmetric [] ; - RelationClasses_Equivalence -> RelationClasses_Reflexive [] ; - RelationClasses_Equivalence -> RelationClasses_Transitive [] ; - RelationClasses_Build_Equivalence -> RelationClasses_Symmetric [] ; - RelationClasses_Build_Equivalence -> RelationClasses_Reflexive [] ; - RelationClasses_Build_Equivalence -> RelationClasses_Transitive [] ; - RelationClasses_Symmetric -> Relation_Definitions_relation [] ; - RelationClasses_Reflexive -> Relation_Definitions_relation [] ; - RelationClasses_Transitive -> Relation_Definitions_relation [] ; - RelationClasses_Equivalence_Transitive -> RelationClasses_Equivalence [] ; - RelationClasses_Equivalence_Symmetric -> RelationClasses_Equivalence [] ; - RelationClasses_PER -> RelationClasses_Symmetric [] ; - RelationClasses_PER -> RelationClasses_Transitive [] ; - RelationClasses_Build_PER -> RelationClasses_Symmetric [] ; - RelationClasses_Build_PER -> RelationClasses_Transitive [] ; - Morphisms_Proper -> Relation_Definitions_relation [] ; - Morphisms_respectful -> Relation_Definitions_relation [] ; - Morphisms_trans_sym_co_inv_impl_morphism_obligation_1 -> Morphisms_respectful [] ; - Morphisms_trans_sym_co_inv_impl_morphism_obligation_1 -> Basics_flip [] ; - Morphisms_trans_sym_co_inv_impl_morphism_obligation_1 -> Basics_impl [] ; - Morphisms_trans_sym_co_inv_impl_morphism_obligation_1 -> RelationClasses_PER_Symmetric [] ; - Morphisms_trans_sym_co_inv_impl_morphism_obligation_1 -> RelationClasses_symmetry [] ; - Morphisms_trans_sym_co_inv_impl_morphism_obligation_1 -> RelationClasses_PER_Transitive [] ; - Morphisms_trans_sym_co_inv_impl_morphism_obligation_1 -> RelationClasses_transitivity [] ; - RelationClasses_PER_Symmetric -> RelationClasses_PER [] ; - RelationClasses_symmetry -> RelationClasses_Symmetric [] ; - RelationClasses_PER_Transitive -> RelationClasses_PER [] ; - RelationClasses_transitivity -> RelationClasses_Transitive [] ; -subgraph cluster_Basics { label="Basics"; fillcolor="#FFFFC3"; labeljust=l; style=filled -Basics_impl; Basics_flip; }; -subgraph cluster_RelationClasses { label="RelationClasses"; fillcolor="#FFFFC3"; labeljust=l; style=filled -RelationClasses_transitivity; RelationClasses_PER_Transitive; RelationClasses_symmetry; RelationClasses_PER_Symmetric; RelationClasses_Build_PER; RelationClasses_PER; RelationClasses_Equivalence_Symmetric; RelationClasses_Equivalence_Transitive; RelationClasses_Transitive; RelationClasses_Reflexive; RelationClasses_Symmetric; RelationClasses_Build_Equivalence; RelationClasses_Equivalence; RelationClasses_Equivalence_PER; }; -subgraph cluster_Morphisms { label="Morphisms"; fillcolor="#FFFFC3"; labeljust=l; style=filled -Morphisms_trans_sym_co_inv_impl_morphism_obligation_1; Morphisms_respectful; Morphisms_Proper; Morphisms_trans_sym_co_inv_impl_morphism; }; -subgraph cluster_Relation_Definitions { label="Relation_Definitions"; fillcolor="#FFFFC3"; labeljust=l; style=filled -Relation_Definitions_relation; }; -subgraph cluster_Morph { label="Morph"; fillcolor="#FFFFC3"; labeljust=l; style=filled -Morph_Fequiv_sym; Morph_Fequiv_refl; Morph_Fequiv_trans; Morph_FequivR; Morph_Fequiv; Morph_Fsmp; Morph_F; Morph_FsmpM_Proper; Morph_rw; }; -} /* END */ diff --git a/tests/Morph_rw.dpd.oracle b/tests/Morph_rw.dpd.oracle deleted file mode 100644 index 3a2591b3d..000000000 --- a/tests/Morph_rw.dpd.oracle +++ /dev/null @@ -1,114 +0,0 @@ -N: 20 "Equivalence_PER" [body=yes, kind=cnst, prop=yes, path="RelationClasses", ]; -N: 33 "Equivalence_Symmetric" [body=yes, kind=cnst, prop=yes, path="RelationClasses", ]; -N: 32 "Equivalence_Transitive" [body=yes, kind=cnst, prop=yes, path="RelationClasses", ]; -N: 18 "F" [body=no, kind=cnst, prop=no, path="Morph", ]; -N: 21 "Fequiv" [body=no, kind=cnst, prop=no, path="Morph", ]; -N: 22 "FequivR" [body=yes, kind=cnst, prop=yes, path="Morph", ]; -N: 24 "Fequiv_refl" [body=no, kind=cnst, prop=yes, path="Morph", ]; -N: 25 "Fequiv_sym" [body=no, kind=cnst, prop=yes, path="Morph", ]; -N: 23 "Fequiv_trans" [body=no, kind=cnst, prop=yes, path="Morph", ]; -N: 19 "Fsmp" [body=no, kind=cnst, prop=no, path="Morph", ]; -N: 17 "FsmpM_Proper" [body=no, kind=cnst, prop=yes, path="Morph", ]; -N: 41 "PER_Symmetric" [body=yes, kind=cnst, prop=yes, path="RelationClasses", ]; -N: 43 "PER_Transitive" [body=yes, kind=cnst, prop=yes, path="RelationClasses", ]; -N: 36 "Proper" [body=yes, kind=cnst, prop=no, path="Morphisms", ]; -N: 29 "Reflexive" [body=yes, kind=cnst, prop=no, path="RelationClasses", ]; -N: 28 "Symmetric" [body=yes, kind=cnst, prop=no, path="RelationClasses", ]; -N: 31 "Transitive" [body=yes, kind=cnst, prop=no, path="RelationClasses", ]; -N: 38 "flip" [body=yes, kind=cnst, prop=no, path="Basics", ]; -N: 39 "impl" [body=yes, kind=cnst, prop=no, path="Basics", ]; -N: 30 "relation" [body=yes, kind=cnst, prop=no, path="Relation_Definitions", ]; -N: 37 "respectful" [body=yes, kind=cnst, prop=no, path="Morphisms", ]; -N: 15 "rw" [body=yes, kind=cnst, prop=yes, path="Morph", ]; -N: 42 "symmetry" [body=yes, kind=cnst, prop=yes, path="RelationClasses", ]; -N: 16 "trans_sym_co_inv_impl_morphism" [body=yes, kind=cnst, prop=yes, path="Morphisms", ]; -N: 40 "trans_sym_co_inv_impl_morphism_obligation_1" [body=yes, kind=cnst, prop=yes, path="Morphisms", ]; -N: 44 "transitivity" [body=yes, kind=cnst, prop=yes, path="RelationClasses", ]; -N: 26 "Equivalence" [kind=inductive, prop=no, path="RelationClasses", ]; -N: 34 "PER" [kind=inductive, prop=no, path="RelationClasses", ]; -N: 27 "Build_Equivalence" [kind=construct, prop=yes, path="RelationClasses", ]; -N: 35 "Build_PER" [kind=construct, prop=yes, path="RelationClasses", ]; -E: 15 16 [weight=1, ]; -E: 15 17 [weight=1, ]; -E: 15 18 [weight=6, ]; -E: 15 19 [weight=5, ]; -E: 15 20 [weight=1, ]; -E: 15 21 [weight=8, ]; -E: 15 22 [weight=1, ]; -E: 16 30 [weight=3, ]; -E: 16 34 [weight=3, ]; -E: 16 36 [weight=1, ]; -E: 16 37 [weight=1, ]; -E: 16 38 [weight=1, ]; -E: 16 39 [weight=1, ]; -E: 16 40 [weight=1, ]; -E: 17 18 [weight=4, ]; -E: 17 19 [weight=1, ]; -E: 17 21 [weight=2, ]; -E: 17 36 [weight=1, ]; -E: 17 37 [weight=1, ]; -E: 19 18 [weight=2, ]; -E: 20 26 [weight=2, ]; -E: 20 30 [weight=2, ]; -E: 20 32 [weight=1, ]; -E: 20 33 [weight=1, ]; -E: 20 34 [weight=1, ]; -E: 20 35 [weight=1, ]; -E: 21 18 [weight=2, ]; -E: 22 18 [weight=2, ]; -E: 22 21 [weight=2, ]; -E: 22 23 [weight=1, ]; -E: 22 24 [weight=1, ]; -E: 22 25 [weight=1, ]; -E: 22 26 [weight=1, ]; -E: 22 27 [weight=1, ]; -E: 23 18 [weight=3, ]; -E: 23 21 [weight=3, ]; -E: 24 18 [weight=1, ]; -E: 24 21 [weight=1, ]; -E: 25 18 [weight=2, ]; -E: 25 21 [weight=2, ]; -E: 26 28 [weight=1, ]; -E: 26 29 [weight=1, ]; -E: 26 30 [weight=1, ]; -E: 26 31 [weight=1, ]; -E: 27 28 [weight=1, ]; -E: 27 29 [weight=1, ]; -E: 27 30 [weight=1, ]; -E: 27 31 [weight=1, ]; -E: 28 30 [weight=2, ]; -E: 29 30 [weight=2, ]; -E: 31 30 [weight=2, ]; -E: 32 26 [weight=3, ]; -E: 32 30 [weight=2, ]; -E: 32 31 [weight=2, ]; -E: 33 26 [weight=3, ]; -E: 33 28 [weight=2, ]; -E: 33 30 [weight=2, ]; -E: 34 28 [weight=1, ]; -E: 34 30 [weight=1, ]; -E: 34 31 [weight=1, ]; -E: 35 28 [weight=1, ]; -E: 35 30 [weight=1, ]; -E: 35 31 [weight=1, ]; -E: 36 30 [weight=2, ]; -E: 37 30 [weight=5, ]; -E: 40 30 [weight=2, ]; -E: 40 34 [weight=2, ]; -E: 40 37 [weight=1, ]; -E: 40 38 [weight=1, ]; -E: 40 39 [weight=1, ]; -E: 40 41 [weight=1, ]; -E: 40 42 [weight=1, ]; -E: 40 43 [weight=1, ]; -E: 40 44 [weight=1, ]; -E: 41 28 [weight=2, ]; -E: 41 30 [weight=2, ]; -E: 41 34 [weight=3, ]; -E: 42 28 [weight=2, ]; -E: 42 30 [weight=2, ]; -E: 43 30 [weight=2, ]; -E: 43 31 [weight=2, ]; -E: 43 34 [weight=3, ]; -E: 44 30 [weight=2, ]; -E: 44 31 [weight=2, ]; diff --git a/tests/Polymorph.dot.oracle b/tests/Polymorph.dot.oracle deleted file mode 100644 index 7a44d8df3..000000000 --- a/tests/Polymorph.dot.oracle +++ /dev/null @@ -1,11 +0,0 @@ -digraph tests/Polymorph { - graph [ratio=0.5] - node [style=filled] -Polymorph_foo [label="foo", URL=, peripheries=3, fillcolor="#F070D1"] ; -_sigT [label="sigT", URL=<.html#sigT>, fillcolor="#E2CDFA"] ; -_existT [label="existT", URL=<.html#existT>, fillcolor="#7FAAFF"] ; - Polymorph_foo -> _sigT [] ; - Polymorph_foo -> _existT [] ; -subgraph cluster_Polymorph { label="Polymorph"; fillcolor="#FFFFC3"; labeljust=l; style=filled -Polymorph_foo; }; -} /* END */ diff --git a/tests/Polymorph.dpd.oracle b/tests/Polymorph.dpd.oracle deleted file mode 100644 index 805148b64..000000000 --- a/tests/Polymorph.dpd.oracle +++ /dev/null @@ -1,5 +0,0 @@ -N: 1 "foo" [body=yes, kind=cnst, prop=no, path="Polymorph", ]; -N: 2 "sigT" [kind=inductive, prop=no, ]; -N: 3 "existT" [kind=construct, prop=no, ]; -E: 1 2 [weight=15, ]; -E: 1 3 [weight=2, ]; diff --git a/tests/Polymorph.t b/tests/Polymorph.t new file mode 100644 index 000000000..380fcdeac --- /dev/null +++ b/tests/Polymorph.t @@ -0,0 +1,36 @@ + $ coqc -R . dpdgraph.tests Polymorph.v + + $ coqtop -R . dpdgraph.tests -R ../theories dpdgraph -I ../src < PolymorphCmd.v | sed -e 's/Welcome to Coq.*/Welcome to Coq/' + + Coq < + Coq < Coq < + Coq < + Coq < Coq < + Coq < + Welcome to Coq + [Loading ML file coq-dpdgraph.plugin ... done] + Info: output dependencies in file Polymorph.dpd + + $ cat Polymorph.dpd + N: 1 "foo" [body=yes, kind=cnst, prop=no, path="Polymorph", ]; + N: 2 "sigT" [kind=inductive, prop=no, ]; + N: 3 "existT" [kind=construct, prop=no, ]; + E: 1 2 [weight=15, ]; + E: 1 3 [weight=2, ]; + + $ dpd2dot Polymorph.dpd + Info: read file Polymorph.dpd + Info: Graph output in Polymorph.dot + + $ cat Polymorph.dot + digraph Polymorph { + graph [ratio=0.5] + node [style=filled] + Polymorph_foo [label="foo", URL=, peripheries=3, fillcolor="#F070D1"] ; + _sigT [label="sigT", URL=<.html#sigT>, fillcolor="#E2CDFA"] ; + _existT [label="existT", URL=<.html#existT>, fillcolor="#7FAAFF"] ; + Polymorph_foo -> _sigT [] ; + Polymorph_foo -> _existT [] ; + subgraph cluster_Polymorph { label="Polymorph"; fillcolor="#FFFFC3"; labeljust=l; style=filled + Polymorph_foo; }; + } /* END */ diff --git a/tests/Polymorph.cmd b/tests/PolymorphCmd.v similarity index 100% rename from tests/Polymorph.cmd rename to tests/PolymorphCmd.v diff --git a/tests/PrimitiveProjections.dot.oracle b/tests/PrimitiveProjections.dot.oracle deleted file mode 100644 index ce81da97c..000000000 --- a/tests/PrimitiveProjections.dot.oracle +++ /dev/null @@ -1,19 +0,0 @@ -digraph tests/PrimitiveProjections { - graph [ratio=0.5] - node [style=filled] -PrimitiveProjections_foo [label="foo", URL=, peripheries=3, fillcolor="#F070D1"] ; -PrimitiveProjections_baz [label="baz", URL=, peripheries=3, fillcolor="#F070D1"] ; -PrimitiveProjections_bar [label="bar", URL=, peripheries=3, fillcolor="#F070D1"] ; -PrimitiveProjections_projT2 [label="projT2", URL=, peripheries=3, fillcolor="#F070D1"] ; -PrimitiveProjections_projT1 [label="projT1", URL=, fillcolor="#F070D1"] ; -PrimitiveProjections_existT [label="existT", URL=, fillcolor="#7FAAFF"] ; -PrimitiveProjections_sigT [label="sigT", URL=, fillcolor="#E2CDFA"] ; - PrimitiveProjections_foo -> PrimitiveProjections_existT [] ; - PrimitiveProjections_foo -> PrimitiveProjections_sigT [] ; - PrimitiveProjections_baz -> PrimitiveProjections_sigT [] ; - PrimitiveProjections_bar -> PrimitiveProjections_projT1 [] ; - PrimitiveProjections_projT2 -> PrimitiveProjections_sigT [] ; - PrimitiveProjections_projT1 -> PrimitiveProjections_sigT [] ; -subgraph cluster_PrimitiveProjections { label="PrimitiveProjections"; fillcolor="#FFFFC3"; labeljust=l; style=filled -PrimitiveProjections_sigT; PrimitiveProjections_existT; PrimitiveProjections_projT1; PrimitiveProjections_projT2; PrimitiveProjections_bar; PrimitiveProjections_baz; PrimitiveProjections_foo; }; -} /* END */ diff --git a/tests/PrimitiveProjections.dpd.oracle b/tests/PrimitiveProjections.dpd.oracle deleted file mode 100644 index 3d9d3a8ec..000000000 --- a/tests/PrimitiveProjections.dpd.oracle +++ /dev/null @@ -1,14 +0,0 @@ -N: 3 "bar" [body=yes, kind=cnst, prop=no, path="PrimitiveProjections", ]; -N: 2 "baz" [body=yes, kind=cnst, prop=no, path="PrimitiveProjections", ]; -N: 1 "foo" [body=yes, kind=cnst, prop=no, path="PrimitiveProjections", ]; -N: 5 "projT1" [body=yes, kind=cnst, prop=no, path="PrimitiveProjections", ]; -N: 4 "projT2" [body=yes, kind=cnst, prop=no, path="PrimitiveProjections", ]; -N: 7 "sigT" [kind=inductive, prop=no, path="PrimitiveProjections", ]; -N: 6 "existT" [kind=construct, prop=no, path="PrimitiveProjections", ]; -E: 1 6 [weight=2, ]; -E: 1 7 [weight=8, ]; -E: 2 7 [weight=2, ]; -E: 3 5 [weight=1, ]; -E: 3 7 [weight=1, ]; -E: 4 7 [weight=2, ]; -E: 5 7 [weight=2, ]; diff --git a/tests/PrimitiveProjections.t b/tests/PrimitiveProjections.t new file mode 100644 index 000000000..1bb95aaec --- /dev/null +++ b/tests/PrimitiveProjections.t @@ -0,0 +1,84 @@ + $ coqc -R . dpdgraph.tests PrimitiveProjections.v + File "./PrimitiveProjections.v", line 6, characters 0-69: + Warning: Notation "{ _ : _ & _ }" was already used in scope type_scope. + [notation-overridden,parsing] + + $ coqtop -R . dpdgraph.tests -R ../theories dpdgraph -I ../src < PrimitiveProjectionsCmd.v | sed -e 's/Welcome to Coq.*/Welcome to Coq/' + + Coq < + Coq < Coq < + Coq < + Coq < + Coq < + Coq < Coq < + Coq < + Welcome to Coq + [Loading ML file coq-dpdgraph.plugin ... done] + Info: output dependencies in file PrimitiveProjections.dpd + Info: output dependencies in file PrimitiveProjections2.dpd + $ cat PrimitiveProjections.dpd + N: 3 "bar" [body=yes, kind=cnst, prop=no, path="PrimitiveProjections", ]; + N: 2 "baz" [body=yes, kind=cnst, prop=no, path="PrimitiveProjections", ]; + N: 1 "foo" [body=yes, kind=cnst, prop=no, path="PrimitiveProjections", ]; + N: 5 "projT1" [body=yes, kind=cnst, prop=no, path="PrimitiveProjections", ]; + N: 4 "projT2" [body=yes, kind=cnst, prop=no, path="PrimitiveProjections", ]; + N: 7 "sigT" [kind=inductive, prop=no, path="PrimitiveProjections", ]; + N: 6 "existT" [kind=construct, prop=no, path="PrimitiveProjections", ]; + E: 1 6 [weight=2, ]; + E: 1 7 [weight=8, ]; + E: 2 7 [weight=2, ]; + E: 3 5 [weight=1, ]; + E: 3 7 [weight=1, ]; + E: 4 7 [weight=2, ]; + E: 5 7 [weight=2, ]; + + $ dpd2dot PrimitiveProjections.dpd + Info: read file PrimitiveProjections.dpd + Info: Graph output in PrimitiveProjections.dot + + $ cat PrimitiveProjections.dot + digraph PrimitiveProjections { + graph [ratio=0.5] + node [style=filled] + PrimitiveProjections_foo [label="foo", URL=, peripheries=3, fillcolor="#F070D1"] ; + PrimitiveProjections_baz [label="baz", URL=, peripheries=3, fillcolor="#F070D1"] ; + PrimitiveProjections_bar [label="bar", URL=, peripheries=3, fillcolor="#F070D1"] ; + PrimitiveProjections_projT2 [label="projT2", URL=, peripheries=3, fillcolor="#F070D1"] ; + PrimitiveProjections_projT1 [label="projT1", URL=, fillcolor="#F070D1"] ; + PrimitiveProjections_existT [label="existT", URL=, fillcolor="#7FAAFF"] ; + PrimitiveProjections_sigT [label="sigT", URL=, fillcolor="#E2CDFA"] ; + PrimitiveProjections_foo -> PrimitiveProjections_existT [] ; + PrimitiveProjections_foo -> PrimitiveProjections_sigT [] ; + PrimitiveProjections_baz -> PrimitiveProjections_sigT [] ; + PrimitiveProjections_bar -> PrimitiveProjections_projT1 [] ; + PrimitiveProjections_projT2 -> PrimitiveProjections_sigT [] ; + PrimitiveProjections_projT1 -> PrimitiveProjections_sigT [] ; + subgraph cluster_PrimitiveProjections { label="PrimitiveProjections"; fillcolor="#FFFFC3"; labeljust=l; style=filled + PrimitiveProjections_sigT; PrimitiveProjections_existT; PrimitiveProjections_projT1; PrimitiveProjections_projT2; PrimitiveProjections_bar; PrimitiveProjections_baz; PrimitiveProjections_foo; }; + } /* END */ + + + $ cat PrimitiveProjections2.dpd + N: 8 "foo" [body=yes, kind=cnst, prop=no, path="PrimitiveProjections", ]; + N: 9 "sigT" [kind=inductive, prop=no, path="PrimitiveProjections", ]; + N: 10 "existT" [kind=construct, prop=no, path="PrimitiveProjections", ]; + E: 8 9 [weight=8, ]; + E: 8 10 [weight=2, ]; + + $ dpd2dot PrimitiveProjections2.dpd + Info: read file PrimitiveProjections2.dpd + Info: Graph output in PrimitiveProjections2.dot + + $ cat PrimitiveProjections2.dot + digraph PrimitiveProjections2 { + graph [ratio=0.5] + node [style=filled] + PrimitiveProjections_foo [label="foo", URL=, peripheries=3, fillcolor="#F070D1"] ; + PrimitiveProjections_sigT [label="sigT", URL=, fillcolor="#E2CDFA"] ; + PrimitiveProjections_existT [label="existT", URL=, fillcolor="#7FAAFF"] ; + PrimitiveProjections_foo -> PrimitiveProjections_sigT [] ; + PrimitiveProjections_foo -> PrimitiveProjections_existT [] ; + subgraph cluster_PrimitiveProjections { label="PrimitiveProjections"; fillcolor="#FFFFC3"; labeljust=l; style=filled + PrimitiveProjections_existT; PrimitiveProjections_sigT; PrimitiveProjections_foo; }; + } /* END */ + diff --git a/tests/PrimitiveProjections2.dot.oracle b/tests/PrimitiveProjections2.dot.oracle deleted file mode 100644 index 67253c13e..000000000 --- a/tests/PrimitiveProjections2.dot.oracle +++ /dev/null @@ -1,11 +0,0 @@ -digraph tests/PrimitiveProjections2 { - graph [ratio=0.5] - node [style=filled] -PrimitiveProjections_foo [label="foo", URL=, peripheries=3, fillcolor="#F070D1"] ; -PrimitiveProjections_sigT [label="sigT", URL=, fillcolor="#E2CDFA"] ; -PrimitiveProjections_existT [label="existT", URL=, fillcolor="#7FAAFF"] ; - PrimitiveProjections_foo -> PrimitiveProjections_sigT [] ; - PrimitiveProjections_foo -> PrimitiveProjections_existT [] ; -subgraph cluster_PrimitiveProjections { label="PrimitiveProjections"; fillcolor="#FFFFC3"; labeljust=l; style=filled -PrimitiveProjections_existT; PrimitiveProjections_sigT; PrimitiveProjections_foo; }; -} /* END */ diff --git a/tests/PrimitiveProjections2.dpd.oracle b/tests/PrimitiveProjections2.dpd.oracle deleted file mode 100644 index 904cee2a9..000000000 --- a/tests/PrimitiveProjections2.dpd.oracle +++ /dev/null @@ -1,5 +0,0 @@ -N: 8 "foo" [body=yes, kind=cnst, prop=no, path="PrimitiveProjections", ]; -N: 9 "sigT" [kind=inductive, prop=no, path="PrimitiveProjections", ]; -N: 10 "existT" [kind=construct, prop=no, path="PrimitiveProjections", ]; -E: 8 9 [weight=8, ]; -E: 8 10 [weight=2, ]; diff --git a/tests/PrimitiveProjections.cmd b/tests/PrimitiveProjectionsCmd.v similarity index 100% rename from tests/PrimitiveProjections.cmd rename to tests/PrimitiveProjectionsCmd.v diff --git a/tests/Test.cmd b/tests/TestCmd.v similarity index 100% rename from tests/Test.cmd rename to tests/TestCmd.v diff --git a/tests/attributes.err.dpd b/tests/attributes.err.dpd deleted file mode 100644 index b9ca60962..000000000 --- a/tests/attributes.err.dpd +++ /dev/null @@ -1,16 +0,0 @@ -N: 1 "one"; /* no attibute */ -N: 2 "two" []; /* empty attributes */ -N: 3 "three" [ kind=cnst, ] ; /* known attribute with known value */ -N: 4 "four" [ kind=unknown, ] ; /* known attribute with unknown value */ -N: 5 "five" [ prop=yes, prop=no, ] ; /* known attribute with two values. - Should this be an error? - */ -N: 6 "six" [ another_attribute=42, ]; /* unknown attribute */ - -E: 1 1; /* no attibute */ -E: 1 2 []; /* empty attributes */ -E: 1 3 [ weight=1, ] ; /* known attribute with known value */ -E: 1 4 [ weight="value", ] ; /* known attribute with unknown value */ - -/* should not have an error before this one: */ -E: 1 10; diff --git a/tests/attributes.err.oracle b/tests/attributes.err.oracle deleted file mode 100644 index 56e514604..000000000 --- a/tests/attributes.err.oracle +++ /dev/null @@ -1,2 +0,0 @@ -Info: read file tests/attributes.err.dpd -Error: no node with number 10: cannot build edge. diff --git a/tests/attributes.err.t b/tests/attributes.err.t new file mode 100644 index 000000000..8b0d6515f --- /dev/null +++ b/tests/attributes.err.t @@ -0,0 +1,22 @@ + $ cat >attributes.err.dpd < N: 1 "one"; /* no attibute */ + > N: 2 "two" []; /* empty attributes */ + > N: 3 "three" [ kind=cnst, ] ; /* known attribute with known value */ + > N: 4 "four" [ kind=unknown, ] ; /* known attribute with unknown value */ + > N: 5 "five" [ prop=yes, prop=no, ] ; /* known attribute with two values. + > Should this be an error? + > */ + > N: 6 "six" [ another_attribute=42, ]; /* unknown attribute */ + > + > E: 1 1; /* no attibute */ + > E: 1 2 []; /* empty attributes */ + > E: 1 3 [ weight=1, ] ; /* known attribute with known value */ + > E: 1 4 [ weight="value", ] ; /* known attribute with unknown value */ + > + > /* should not have an error before this one: */ + > E: 1 10; + > EOF + + $ dpd2dot attributes.err.dpd + Info: read file attributes.err.dpd + Error: no node with number 10: cannot build edge. diff --git a/tests/double_node.err.dpd b/tests/double_node.err.dpd deleted file mode 100644 index 0431c87e0..000000000 --- a/tests/double_node.err.dpd +++ /dev/null @@ -1,5 +0,0 @@ -N: 1 "one"; -N: 2 "two"; -N: 4 "four"; -N: 2 "another two"; - diff --git a/tests/double_node.err.oracle b/tests/double_node.err.oracle deleted file mode 100644 index 6596f15db..000000000 --- a/tests/double_node.err.oracle +++ /dev/null @@ -1,2 +0,0 @@ -Info: read file tests/double_node.err.dpd -Error: a node named 'two' already has the number 2. Cannot create new node named 'another two' with the same number. diff --git a/tests/double_node.err.t b/tests/double_node.err.t new file mode 100644 index 000000000..326ce4306 --- /dev/null +++ b/tests/double_node.err.t @@ -0,0 +1,10 @@ + $ cat >double_node.err.dpd < N: 1 "one"; + > N: 2 "two"; + > N: 4 "four"; + > N: 2 "another two"; + > EOF + + $ dpd2dot double_node.err.dpd + Info: read file double_node.err.dpd + Error: a node named 'two' already has the number 2. Cannot create new node named 'another two' with the same number. diff --git a/tests/dune b/tests/dune new file mode 100644 index 000000000..de323fbb5 --- /dev/null +++ b/tests/dune @@ -0,0 +1,15 @@ +(cram + (deps + Morph.v + MorphCmd.v + Polymorph.v + PolymorphCmd.v + PrimitiveProjections.v + PrimitiveProjectionsCmd.v + Test.v + TestCmd.v + searchCmd.v + ../theories/dpdgraph.vo + %{bin:dpd2dot} + %{bin:dpdusage} + (package coq-dpdgraph))) diff --git a/tests/file_not_found.err.oracle b/tests/file_not_found.err.oracle deleted file mode 100644 index 0c185d6d9..000000000 --- a/tests/file_not_found.err.oracle +++ /dev/null @@ -1,2 +0,0 @@ -Info: read file file_not_found.err.dpd -Error: file_not_found.err.dpd: No such file or directory. diff --git a/tests/file_not_found.err.t b/tests/file_not_found.err.t new file mode 100644 index 000000000..e3a1616cb --- /dev/null +++ b/tests/file_not_found.err.t @@ -0,0 +1,3 @@ + $ dpd2dot file_not_found.err.dpd + Info: read file file_not_found.err.dpd + Error: file_not_found.err.dpd: No such file or directory. diff --git a/tests/graph.dot.oracle b/tests/graph.dot.oracle deleted file mode 100644 index 87aad5c44..000000000 --- a/tests/graph.dot.oracle +++ /dev/null @@ -1,623 +0,0 @@ -digraph tests/graph { - graph [ratio=0.5] - node [style=filled] -Test_removelast_app [label="removelast_app", URL=, fillcolor="#7FFFD4"] ; -Test_exists_last [label="exists_last", URL=, peripheries=3, fillcolor="#F070D1"] ; -Test_ReDun_NoDup_Permutation [label="NoDup_Permutation", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_app_removelast_last [label="app_removelast_last", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_ReDun_NoDup_remove_2 [label="NoDup_remove_2", URL=, fillcolor="#7FFFD4"] ; -Test_removelast [label="removelast", URL=, fillcolor="#F070D1"] ; -Test_ReDun_NoDup_remove_1 [label="NoDup_remove_1", URL=, fillcolor="#7FFFD4"] ; -Test_last [label="last", URL=, fillcolor="#F070D1"] ; -Test_ReDun_NoDup_sind [label="NoDup_sind", URL=, peripheries=3, fillcolor="#F070D1"] ; -Test_remove_In [label="remove_In", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_ReDun_NoDup_ind [label="NoDup_ind", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_ReDun_NoDup_cons [label="NoDup_cons", URL=, fillcolor="#7FAAFF"] ; -Test_remove [label="remove", URL=, fillcolor="#F070D1"] ; -Test_ReDun_NoDup_nil [label="NoDup_nil", URL=, peripheries=3, fillcolor="#7FAAFF"] ; -Test_app_nth2 [label="app_nth2", URL=, fillcolor="#7FFFD4"] ; -Test_ReDun_NoDup [label="NoDup", URL=, fillcolor="#E2CDFA"] ; -Test_app_nth1 [label="app_nth1", URL=, fillcolor="#7FFFD4"] ; -Test_nth_indep [label="nth_indep", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_ReDun_A [label="A", URL=, fillcolor="#FACDEF"] ; -Test_seq_shift [label="seq_shift", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_nth_overflow [label="nth_overflow", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_seq_nth [label="seq_nth", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_nth_In [label="nth_In", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_seq_length [label="seq_length", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_nth_default [label="nth_default", URL=, peripheries=3, fillcolor="#F070D1"] ; -Test_seq [label="seq", URL=, fillcolor="#F070D1"] ; -Test_nth_error [label="nth_error", URL=, fillcolor="#F070D1"] ; -Test_nth_S_cons [label="nth_S_cons", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_firstn_removelast [label="firstn_removelast", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_removelast_firstn [label="removelast_firstn", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_nth_in_or_default [label="nth_in_or_default", URL=, peripheries=3, fillcolor="#F070D1"] ; -Test_nth_ok [label="nth_ok", URL=, peripheries=3, fillcolor="#F070D1"] ; -Test_firstn_length [label="firstn_length", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_nth [label="nth", URL=, fillcolor="#F070D1"] ; -Test_firstn_skipn [label="firstn_skipn", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_skipn [label="skipn", URL=, fillcolor="#F070D1"] ; -Test_app_inv_tail [label="app_inv_tail", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_firstn [label="firstn", URL=, fillcolor="#F070D1"] ; -Test_app_inv_head [label="app_inv_head", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_incl_app [label="incl_app", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_in_or_app [label="in_or_app", URL=, fillcolor="#7FFFD4"] ; -Test_incl_cons [label="incl_cons", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_in_app_or [label="in_app_or", URL=, fillcolor="#7FFFD4"] ; -Test_incl_appr [label="incl_appr", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_app_length [label="app_length", URL=, fillcolor="#7FFFD4"] ; -Test_incl_appl [label="incl_appl", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_app_inj_tail [label="app_inj_tail", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_incl_tran [label="incl_tran", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_app_eq_unit [label="app_eq_unit", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_incl_tl [label="incl_tl", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_app_eq_nil [label="app_eq_nil", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_incl_refl [label="incl_refl", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_app_comm_cons [label="app_comm_cons", URL=, fillcolor="#7FFFD4"] ; -Test_incl [label="incl", URL=, fillcolor="#F070D1"] ; -Test_ass_app [label="ass_app", URL=, fillcolor="#7FFFD4"] ; -Test_lel_nil [label="lel_nil", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_app_ass [label="app_ass", URL=, fillcolor="#7FFFD4"] ; -Test_lel_tail [label="lel_tail", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_app_nil_end [label="app_nil_end", URL=, fillcolor="#7FFFD4"] ; -Test_lel_cons [label="lel_cons", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_app_cons_not_nil [label="app_cons_not_nil", URL=, fillcolor="#7FFFD4"] ; -Test_lel_cons_cons [label="lel_cons_cons", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_In_dec [label="In_dec", URL=, peripheries=3, fillcolor="#F070D1"] ; -Test_lel_trans [label="lel_trans", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_in_inv [label="in_inv", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_lel_refl [label="lel_refl", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_In_split [label="In_split", URL=, fillcolor="#7FFFD4"] ; -Test_lel [label="lel", URL=, fillcolor="#F070D1"] ; -Test_in_nil [label="in_nil", URL=, fillcolor="#7FFFD4"] ; -Test_prod_length [label="prod_length", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_in_cons [label="in_cons", URL=, fillcolor="#7FFFD4"] ; -Test_in_prod_iff [label="in_prod_iff", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_in_eq [label="in_eq", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_in_prod [label="in_prod", URL=, fillcolor="#7FFFD4"] ; -Test_head_cons [label="head_cons", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_in_prod_aux [label="in_prod_aux", URL=, fillcolor="#7FFFD4"] ; -Test_head_nil [label="head_nil", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_list_prod [label="list_prod", URL=, fillcolor="#F070D1"] ; -Test_destruct_list [label="destruct_list", URL=, peripheries=3, fillcolor="#F070D1"] ; -Test_nil_cons [label="nil_cons", URL=, fillcolor="#7FFFD4"] ; -Test_combine_nth [label="combine_nth", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_combine_length [label="combine_length", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_app [label="app", URL=, fillcolor="#F070D1"] ; -Test_in_combine_r [label="in_combine_r", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_In [label="In", URL=, fillcolor="#F070D1"] ; -Test_size_nil [label="size_nil", URL=, peripheries=3, fillcolor="#FFB57F"] ; -Test_in_combine_l [label="in_combine_l", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_size [label="size", URL=, fillcolor="#FACDEF"] ; -Test_combine_split [label="combine_split", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_split_combine [label="split_combine", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_length [label="length", URL=, fillcolor="#F070D1"] ; -Test_tail [label="tail", URL=, peripheries=3, fillcolor="#F070D1"] ; -Test_combine [label="combine", URL=, fillcolor="#F070D1"] ; -Test_split_length_r [label="split_length_r", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_hd [label="hd", URL=, peripheries=3, fillcolor="#F070D1"] ; -Test_split_length_l [label="split_length_l", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_head [label="head", URL=, fillcolor="#F070D1"] ; -Test_split_nth [label="split_nth", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_list_sind [label="list_sind", URL=, peripheries=3, fillcolor="#F070D1"] ; -Test_list_rec [label="list_rec", URL=, fillcolor="#F070D1"] ; -Test_in_split_r [label="in_split_r", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_list_ind [label="list_ind", URL=, fillcolor="#7FFFD4"] ; -Test_in_split_l [label="in_split_l", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_split [label="split", URL=, fillcolor="#F070D1"] ; -Test_list_rect [label="list_rect", URL=, fillcolor="#F070D1"] ; -Test_cons [label="cons", URL=, fillcolor="#7FAAFF"] ; -Test_partition [label="partition", URL=, peripheries=3, fillcolor="#F070D1"] ; -Test_nil [label="nil", URL=, fillcolor="#7FAAFF"] ; -Test_find [label="find", URL=, peripheries=3, fillcolor="#F070D1"] ; -Test_list [label="list", URL=, fillcolor="#E2CDFA"] ; -Test_filter_In [label="filter_In", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_filter [label="filter", URL=, fillcolor="#F070D1"] ; -Test_forallb_forall [label="forallb_forall", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_forallb [label="forallb", URL=, fillcolor="#F070D1"] ; -Test_existsb_nth [label="existsb_nth", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_existsb_exists [label="existsb_exists", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_existsb [label="existsb", URL=, fillcolor="#F070D1"] ; -Test_list_power [label="list_power", URL=, peripheries=3, fillcolor="#F070D1"] ; -Test_fold_symmetric [label="fold_symmetric", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_fold_left_rev_right [label="fold_left_rev_right", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_fold_right_app [label="fold_right_app", URL=, fillcolor="#7FFFD4"] ; -Test_fold_right [label="fold_right", URL=, fillcolor="#F070D1"] ; -Test_fold_left_length [label="fold_left_length", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_fold_left_app [label="fold_left_app", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_fold_left [label="fold_left", URL=, fillcolor="#F070D1"] ; -Test_map_ext [label="map_ext", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_map_map [label="map_map", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_in_flat_map [label="in_flat_map", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_flat_map [label="flat_map", URL=, fillcolor="#F070D1"] ; -Test_Permutation_map [label="Permutation_map", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_map_rev [label="map_rev", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_map_app [label="map_app", URL=, fillcolor="#7FFFD4"] ; -Test_map_nth [label="map_nth", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_map_length [label="map_length", URL=, fillcolor="#7FFFD4"] ; -Test_in_map_iff [label="in_map_iff", URL=, fillcolor="#7FFFD4"] ; -Test_in_map [label="in_map", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_map [label="map", URL=, fillcolor="#F070D1"] ; -Test_list_eq_dec [label="list_eq_dec", URL=, peripheries=3, fillcolor="#F070D1"] ; -Test_Permutation_app_inv_r [label="Permutation_app_inv_r", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_Permutation_app_inv_l [label="Permutation_app_inv_l", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_Permutation_cons_app_inv [label="Permutation_cons_app_inv", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_Permutation_cons_inv [label="Permutation_cons_inv", URL=, fillcolor="#7FFFD4"] ; -Test_Permutation_app_inv [label="Permutation_app_inv", URL=, fillcolor="#7FFFD4"] ; -Test_Permutation_ind_bis [label="Permutation_ind_bis", URL=, fillcolor="#7FFFD4"] ; -Test_Permutation_rev [label="Permutation_rev", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_Permutation_length [label="Permutation_length", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_Permutation_cons_app [label="Permutation_cons_app", URL=, fillcolor="#7FFFD4"] ; -Test_Permutation_app_swap [label="Permutation_app_swap", URL=, fillcolor="#7FFFD4"] ; -Test_Permutation_app [label="Permutation_app", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_Permutation_app_head [label="Permutation_app_head", URL=, fillcolor="#7FFFD4"] ; -Test_Permutation_app_tail [label="Permutation_app_tail", URL=, fillcolor="#7FFFD4"] ; -Test_Permutation_in [label="Permutation_in", URL=, fillcolor="#7FFFD4"] ; -Test_Permutation_trans [label="Permutation_trans", URL=, fillcolor="#7FFFD4"] ; -Test_Permutation_sym [label="Permutation_sym", URL=, fillcolor="#7FFFD4"] ; -Test_Permutation_refl [label="Permutation_refl", URL=, fillcolor="#7FFFD4"] ; -Test_Permutation_nil_cons [label="Permutation_nil_cons", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_Permutation_nil [label="Permutation_nil", URL=, fillcolor="#7FFFD4"] ; -Test_Permutation_sind [label="Permutation_sind", URL=, peripheries=3, fillcolor="#F070D1"] ; -Test_Permutation_ind [label="Permutation_ind", URL=, fillcolor="#7FFFD4"] ; -Test_perm_trans [label="perm_trans", URL=, fillcolor="#7FAAFF"] ; -Test_perm_swap [label="perm_swap", URL=, fillcolor="#7FAAFF"] ; -Test_perm_skip [label="perm_skip", URL=, fillcolor="#7FAAFF"] ; -Test_perm_nil [label="perm_nil", URL=, fillcolor="#7FAAFF"] ; -Test_Permutation [label="Permutation", URL=, fillcolor="#E2CDFA"] ; -Test_rev_ind [label="rev_ind", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_rev_list_ind [label="rev_list_ind", URL=, fillcolor="#7FFFD4"] ; -Test_rev_alt [label="rev_alt", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_rev_append_rev [label="rev_append_rev", URL=, fillcolor="#7FFFD4"] ; -Test_rev_ [label="rev'", URL=, peripheries=3, fillcolor="#F070D1"] ; -Test_rev_append [label="rev_append", URL=, fillcolor="#F070D1"] ; -Test_rev_nth [label="rev_nth", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_rev_length [label="rev_length", URL=, fillcolor="#7FFFD4"] ; -Test_In_rev [label="In_rev", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_rev_involutive [label="rev_involutive", URL=, fillcolor="#7FFFD4"] ; -Test_rev_unit [label="rev_unit", URL=, fillcolor="#7FFFD4"] ; -Test_distr_rev [label="distr_rev", URL=, fillcolor="#7FFFD4"] ; -Test_rev [label="rev", URL=, fillcolor="#F070D1"] ; -Test_count_occ_cons_neq [label="count_occ_cons_neq", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_count_occ_cons_eq [label="count_occ_cons_eq", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_count_occ_nil [label="count_occ_nil", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_count_occ_inv_nil [label="count_occ_inv_nil", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_count_occ_In [label="count_occ_In", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_count_occ [label="count_occ", URL=, fillcolor="#F070D1"] ; - Test_removelast_app -> Test_removelast [] ; - Test_removelast_app -> Test_app [] ; - Test_removelast_app -> Test_list_ind [] ; - Test_exists_last -> Test_app [] ; - Test_exists_last -> Test_list_rect [] ; - Test_ReDun_NoDup_Permutation -> Test_ReDun_NoDup_remove_2 [] ; - Test_ReDun_NoDup_Permutation -> Test_ReDun_NoDup_remove_1 [] ; - Test_ReDun_NoDup_Permutation -> Test_Permutation_cons_app [] ; - Test_ReDun_NoDup_Permutation -> Test_In_split [] ; - Test_app_removelast_last -> Test_removelast [] ; - Test_app_removelast_last -> Test_last [] ; - Test_app_removelast_last -> Test_app [] ; - Test_app_removelast_last -> Test_list_ind [] ; - Test_ReDun_NoDup_remove_2 -> Test_ReDun_NoDup [] ; - Test_ReDun_NoDup_remove_2 -> Test_in_or_app [] ; - Test_removelast -> Test_cons [] ; - Test_removelast -> Test_nil [] ; - Test_removelast -> Test_list [] ; - Test_ReDun_NoDup_remove_1 -> Test_ReDun_NoDup_cons [] ; - Test_ReDun_NoDup_remove_1 -> Test_ReDun_NoDup [] ; - Test_ReDun_NoDup_remove_1 -> Test_in_or_app [] ; - Test_ReDun_NoDup_remove_1 -> Test_in_app_or [] ; - Test_last -> Test_list [] ; - Test_ReDun_NoDup_sind -> Test_ReDun_NoDup [] ; - Test_remove_In -> Test_remove [] ; - Test_remove_In -> Test_In [] ; - Test_remove_In -> Test_list_ind [] ; - Test_ReDun_NoDup_ind -> Test_ReDun_NoDup [] ; - Test_ReDun_NoDup_cons -> Test_ReDun_A [] ; - Test_ReDun_NoDup_cons -> Test_In [] ; - Test_ReDun_NoDup_cons -> Test_cons [] ; - Test_ReDun_NoDup_cons -> Test_nil [] ; - Test_remove -> Test_cons [] ; - Test_remove -> Test_nil [] ; - Test_remove -> Test_list [] ; - Test_ReDun_NoDup_nil -> Test_ReDun_A [] ; - Test_ReDun_NoDup_nil -> Test_In [] ; - Test_ReDun_NoDup_nil -> Test_cons [] ; - Test_ReDun_NoDup_nil -> Test_nil [] ; - Test_app_nth2 -> Test_nth [] ; - Test_app_nth2 -> Test_app [] ; - Test_app_nth2 -> Test_length [] ; - Test_app_nth2 -> Test_list_ind [] ; - Test_ReDun_NoDup -> Test_ReDun_A [] ; - Test_ReDun_NoDup -> Test_In [] ; - Test_ReDun_NoDup -> Test_cons [] ; - Test_ReDun_NoDup -> Test_nil [] ; - Test_app_nth1 -> Test_nth [] ; - Test_app_nth1 -> Test_app [] ; - Test_app_nth1 -> Test_length [] ; - Test_app_nth1 -> Test_list_ind [] ; - Test_nth_indep -> Test_nth [] ; - Test_nth_indep -> Test_length [] ; - Test_nth_indep -> Test_list_ind [] ; - Test_seq_shift -> Test_seq [] ; - Test_seq_shift -> Test_map [] ; - Test_nth_overflow -> Test_nth [] ; - Test_nth_overflow -> Test_length [] ; - Test_nth_overflow -> Test_list_ind [] ; - Test_seq_nth -> Test_seq [] ; - Test_seq_nth -> Test_nth [] ; - Test_nth_In -> Test_nth [] ; - Test_nth_In -> Test_In [] ; - Test_nth_In -> Test_length [] ; - Test_nth_In -> Test_cons [] ; - Test_nth_In -> Test_nil [] ; - Test_seq_length -> Test_seq [] ; - Test_seq_length -> Test_length [] ; - Test_nth_default -> Test_nth_error [] ; - Test_seq -> Test_cons [] ; - Test_seq -> Test_nil [] ; - Test_seq -> Test_list [] ; - Test_nth_error -> Test_list [] ; - Test_nth_S_cons -> Test_nth [] ; - Test_nth_S_cons -> Test_In [] ; - Test_nth_S_cons -> Test_cons [] ; - Test_firstn_removelast -> Test_firstn [] ; - Test_firstn_removelast -> Test_removelast_app [] ; - Test_firstn_removelast -> Test_length [] ; - Test_removelast_firstn -> Test_firstn [] ; - Test_removelast_firstn -> Test_removelast_app [] ; - Test_removelast_firstn -> Test_length [] ; - Test_nth_in_or_default -> Test_nth [] ; - Test_nth_in_or_default -> Test_In [] ; - Test_nth_in_or_default -> Test_list_rec [] ; - Test_nth_ok -> Test_list [] ; - Test_firstn_length -> Test_firstn [] ; - Test_firstn_length -> Test_length [] ; - Test_nth -> Test_list [] ; - Test_firstn_skipn -> Test_skipn [] ; - Test_firstn_skipn -> Test_firstn [] ; - Test_firstn_skipn -> Test_app [] ; - Test_skipn -> Test_nil [] ; - Test_skipn -> Test_list [] ; - Test_app_inv_tail -> Test_app_length [] ; - Test_firstn -> Test_cons [] ; - Test_firstn -> Test_nil [] ; - Test_firstn -> Test_list [] ; - Test_app_inv_head -> Test_app [] ; - Test_app_inv_head -> Test_list_ind [] ; - Test_incl_app -> Test_incl [] ; - Test_incl_app -> Test_in_app_or [] ; - Test_in_or_app -> Test_app [] ; - Test_in_or_app -> Test_In [] ; - Test_in_or_app -> Test_list_ind [] ; - Test_incl_cons -> Test_incl [] ; - Test_incl_cons -> Test_cons [] ; - Test_in_app_or -> Test_app [] ; - Test_in_app_or -> Test_In [] ; - Test_in_app_or -> Test_list_ind [] ; - Test_incl_appr -> Test_incl [] ; - Test_incl_appr -> Test_in_or_app [] ; - Test_app_length -> Test_app [] ; - Test_app_length -> Test_length [] ; - Test_app_length -> Test_list_ind [] ; - Test_incl_appl -> Test_incl [] ; - Test_incl_appl -> Test_in_or_app [] ; - Test_app_inj_tail -> Test_app_cons_not_nil [] ; - Test_app_inj_tail -> Test_list_ind [] ; - Test_incl_tran -> Test_incl [] ; - Test_app_eq_unit -> Test_app_nil_end [] ; - Test_app_eq_unit -> Test_app_cons_not_nil [] ; - Test_incl_tl -> Test_incl [] ; - Test_incl_tl -> Test_in_cons [] ; - Test_app_eq_nil -> Test_app [] ; - Test_app_eq_nil -> Test_nil [] ; - Test_incl_refl -> Test_incl [] ; - Test_app_comm_cons -> Test_app [] ; - Test_incl -> Test_In [] ; - Test_ass_app -> Test_app_ass [] ; - Test_lel_nil -> Test_lel [] ; - Test_lel_nil -> Test_list_ind [] ; - Test_app_ass -> Test_app [] ; - Test_app_ass -> Test_list_ind [] ; - Test_lel_tail -> Test_lel [] ; - Test_lel_tail -> Test_cons [] ; - Test_app_nil_end -> Test_app [] ; - Test_app_nil_end -> Test_list_ind [] ; - Test_lel_cons -> Test_lel [] ; - Test_lel_cons -> Test_cons [] ; - Test_app_cons_not_nil -> Test_app [] ; - Test_app_cons_not_nil -> Test_nil [] ; - Test_lel_cons_cons -> Test_lel [] ; - Test_lel_cons_cons -> Test_cons [] ; - Test_In_dec -> Test_in_nil [] ; - Test_In_dec -> Test_list_rec [] ; - Test_lel_trans -> Test_lel [] ; - Test_in_inv -> Test_In [] ; - Test_in_inv -> Test_cons [] ; - Test_lel_refl -> Test_lel [] ; - Test_In_split -> Test_app [] ; - Test_In_split -> Test_In [] ; - Test_In_split -> Test_list_ind [] ; - Test_lel -> Test_length [] ; - Test_in_nil -> Test_In [] ; - Test_in_nil -> Test_nil [] ; - Test_prod_length -> Test_list_prod [] ; - Test_prod_length -> Test_map_length [] ; - Test_prod_length -> Test_app_length [] ; - Test_in_cons -> Test_In [] ; - Test_in_cons -> Test_cons [] ; - Test_in_prod_iff -> Test_in_prod [] ; - Test_in_prod_iff -> Test_in_map_iff [] ; - Test_in_prod_iff -> Test_in_app_or [] ; - Test_in_eq -> Test_In [] ; - Test_in_eq -> Test_cons [] ; - Test_in_prod -> Test_in_prod_aux [] ; - Test_in_prod -> Test_list_prod [] ; - Test_in_prod -> Test_in_or_app [] ; - Test_head_cons -> Test_head [] ; - Test_head_cons -> Test_cons [] ; - Test_in_prod_aux -> Test_map [] ; - Test_in_prod_aux -> Test_In [] ; - Test_in_prod_aux -> Test_list_ind [] ; - Test_head_nil -> Test_head [] ; - Test_head_nil -> Test_nil [] ; - Test_list_prod -> Test_map [] ; - Test_list_prod -> Test_app [] ; - Test_destruct_list -> Test_list_rect [] ; - Test_nil_cons -> Test_cons [] ; - Test_nil_cons -> Test_nil [] ; - Test_nil_cons -> Test_list [] ; - Test_combine_nth -> Test_combine [] ; - Test_combine_nth -> Test_nth [] ; - Test_combine_nth -> Test_length [] ; - Test_combine_nth -> Test_list_ind [] ; - Test_combine_length -> Test_combine [] ; - Test_combine_length -> Test_length [] ; - Test_combine_length -> Test_list_ind [] ; - Test_app -> Test_cons [] ; - Test_app -> Test_list [] ; - Test_in_combine_r -> Test_combine [] ; - Test_in_combine_r -> Test_In [] ; - Test_in_combine_r -> Test_list_ind [] ; - Test_In -> Test_list [] ; - Test_size_nil -> Test_size [] ; - Test_size_nil -> Test_nil [] ; - Test_in_combine_l -> Test_combine [] ; - Test_in_combine_l -> Test_In [] ; - Test_in_combine_l -> Test_list_ind [] ; - Test_size -> Test_list [] ; - Test_combine_split -> Test_combine [] ; - Test_combine_split -> Test_split [] ; - Test_combine_split -> Test_length [] ; - Test_combine_split -> Test_list_ind [] ; - Test_split_combine -> Test_combine [] ; - Test_split_combine -> Test_split [] ; - Test_split_combine -> Test_list_ind [] ; - Test_length -> Test_list [] ; - Test_tail -> Test_nil [] ; - Test_tail -> Test_list [] ; - Test_combine -> Test_cons [] ; - Test_combine -> Test_nil [] ; - Test_combine -> Test_list [] ; - Test_split_length_r -> Test_split [] ; - Test_split_length_r -> Test_length [] ; - Test_split_length_r -> Test_list_ind [] ; - Test_hd -> Test_list [] ; - Test_split_length_l -> Test_split [] ; - Test_split_length_l -> Test_length [] ; - Test_split_length_l -> Test_list_ind [] ; - Test_head -> Test_list [] ; - Test_split_nth -> Test_split [] ; - Test_split_nth -> Test_nth [] ; - Test_split_nth -> Test_list_ind [] ; - Test_list_sind -> Test_cons [] ; - Test_list_sind -> Test_nil [] ; - Test_list_sind -> Test_list [] ; - Test_list_rec -> Test_list_rect [] ; - Test_in_split_r -> Test_split [] ; - Test_in_split_r -> Test_In [] ; - Test_in_split_r -> Test_list_ind [] ; - Test_list_ind -> Test_cons [] ; - Test_list_ind -> Test_nil [] ; - Test_list_ind -> Test_list [] ; - Test_in_split_l -> Test_split [] ; - Test_in_split_l -> Test_In [] ; - Test_in_split_l -> Test_list_ind [] ; - Test_split -> Test_cons [] ; - Test_split -> Test_nil [] ; - Test_split -> Test_list [] ; - Test_list_rect -> Test_cons [] ; - Test_list_rect -> Test_nil [] ; - Test_list_rect -> Test_list [] ; - Test_partition -> Test_cons [] ; - Test_partition -> Test_nil [] ; - Test_partition -> Test_list [] ; - Test_find -> Test_list [] ; - Test_filter_In -> Test_filter [] ; - Test_filter_In -> Test_In [] ; - Test_filter_In -> Test_list_ind [] ; - Test_filter -> Test_cons [] ; - Test_filter -> Test_nil [] ; - Test_filter -> Test_list [] ; - Test_forallb_forall -> Test_forallb [] ; - Test_forallb_forall -> Test_In [] ; - Test_forallb_forall -> Test_list_ind [] ; - Test_forallb -> Test_list [] ; - Test_existsb_nth -> Test_existsb [] ; - Test_existsb_nth -> Test_nth [] ; - Test_existsb_nth -> Test_length [] ; - Test_existsb_nth -> Test_list_ind [] ; - Test_existsb_exists -> Test_existsb [] ; - Test_existsb_exists -> Test_In [] ; - Test_existsb_exists -> Test_list_ind [] ; - Test_existsb -> Test_list [] ; - Test_list_power -> Test_flat_map [] ; - Test_list_power -> Test_map [] ; - Test_fold_symmetric -> Test_fold_right [] ; - Test_fold_symmetric -> Test_fold_left [] ; - Test_fold_symmetric -> Test_list_ind [] ; - Test_fold_left_rev_right -> Test_fold_right_app [] ; - Test_fold_left_rev_right -> Test_fold_left [] ; - Test_fold_left_rev_right -> Test_rev [] ; - Test_fold_right_app -> Test_fold_right [] ; - Test_fold_right_app -> Test_app [] ; - Test_fold_right_app -> Test_list_ind [] ; - Test_fold_right -> Test_list [] ; - Test_fold_left_length -> Test_fold_left [] ; - Test_fold_left_length -> Test_length [] ; - Test_fold_left_length -> Test_list_ind [] ; - Test_fold_left_app -> Test_fold_left [] ; - Test_fold_left_app -> Test_app [] ; - Test_fold_left_app -> Test_list_ind [] ; - Test_fold_left -> Test_list [] ; - Test_map_ext -> Test_map [] ; - Test_map_ext -> Test_list_ind [] ; - Test_map_map -> Test_map [] ; - Test_map_map -> Test_list_ind [] ; - Test_in_flat_map -> Test_flat_map [] ; - Test_in_flat_map -> Test_in_or_app [] ; - Test_in_flat_map -> Test_in_app_or [] ; - Test_flat_map -> Test_app [] ; - Test_flat_map -> Test_nil [] ; - Test_Permutation_map -> Test_map [] ; - Test_Permutation_map -> Test_Permutation_ind [] ; - Test_Permutation_map -> Test_perm_trans [] ; - Test_Permutation_map -> Test_perm_swap [] ; - Test_Permutation_map -> Test_perm_skip [] ; - Test_Permutation_map -> Test_perm_nil [] ; - Test_map_rev -> Test_map_app [] ; - Test_map_rev -> Test_rev [] ; - Test_map_app -> Test_map [] ; - Test_map_app -> Test_app [] ; - Test_map_app -> Test_list_ind [] ; - Test_map_nth -> Test_map [] ; - Test_map_nth -> Test_nth [] ; - Test_map_nth -> Test_list_ind [] ; - Test_map_length -> Test_map [] ; - Test_map_length -> Test_length [] ; - Test_map_length -> Test_list_ind [] ; - Test_in_map_iff -> Test_map [] ; - Test_in_map_iff -> Test_In [] ; - Test_in_map_iff -> Test_list_ind [] ; - Test_in_map -> Test_map [] ; - Test_in_map -> Test_In [] ; - Test_in_map -> Test_list_ind [] ; - Test_map -> Test_cons [] ; - Test_map -> Test_nil [] ; - Test_map -> Test_list [] ; - Test_list_eq_dec -> Test_nil_cons [] ; - Test_list_eq_dec -> Test_list_rect [] ; - Test_Permutation_app_inv_r -> Test_Permutation_app_inv [] ; - Test_Permutation_app_inv_r -> Test_app_nil_end [] ; - Test_Permutation_app_inv_l -> Test_Permutation_cons_inv [] ; - Test_Permutation_cons_app_inv -> Test_Permutation_app_inv [] ; - Test_Permutation_cons_inv -> Test_Permutation_app_inv [] ; - Test_Permutation_app_inv -> Test_Permutation_ind_bis [] ; - Test_Permutation_app_inv -> Test_Permutation_cons_app [] ; - Test_Permutation_app_inv -> Test_Permutation_in [] ; - Test_Permutation_app_inv -> Test_Permutation_sym [] ; - Test_Permutation_app_inv -> Test_in_or_app [] ; - Test_Permutation_app_inv -> Test_In_split [] ; - Test_Permutation_ind_bis -> Test_Permutation_refl [] ; - Test_Permutation_ind_bis -> Test_Permutation_ind [] ; - Test_Permutation_ind_bis -> Test_perm_swap [] ; - Test_Permutation_rev -> Test_Permutation_app_swap [] ; - Test_Permutation_rev -> Test_rev [] ; - Test_Permutation_length -> Test_Permutation_ind [] ; - Test_Permutation_length -> Test_length [] ; - Test_Permutation_cons_app -> Test_Permutation_refl [] ; - Test_Permutation_cons_app -> Test_perm_trans [] ; - Test_Permutation_cons_app -> Test_perm_swap [] ; - Test_Permutation_cons_app -> Test_app [] ; - Test_Permutation_app_swap -> Test_Permutation_trans [] ; - Test_Permutation_app_swap -> Test_Permutation_sym [] ; - Test_Permutation_app_swap -> Test_Permutation_refl [] ; - Test_Permutation_app_swap -> Test_app_comm_cons [] ; - Test_Permutation_app_swap -> Test_app_nil_end [] ; - Test_Permutation_app -> Test_Permutation_app_head [] ; - Test_Permutation_app -> Test_Permutation_app_tail [] ; - Test_Permutation_app_head -> Test_perm_skip [] ; - Test_Permutation_app_head -> Test_Permutation [] ; - Test_Permutation_app_head -> Test_app_comm_cons [] ; - Test_Permutation_app_head -> Test_list_ind [] ; - Test_Permutation_app_tail -> Test_Permutation_trans [] ; - Test_Permutation_app_tail -> Test_Permutation_sym [] ; - Test_Permutation_app_tail -> Test_Permutation_refl [] ; - Test_Permutation_app_tail -> Test_app [] ; - Test_Permutation_in -> Test_Permutation_ind [] ; - Test_Permutation_in -> Test_In [] ; - Test_Permutation_trans -> Test_perm_trans [] ; - Test_Permutation_trans -> Test_Permutation [] ; - Test_Permutation_sym -> Test_Permutation_ind [] ; - Test_Permutation_sym -> Test_perm_trans [] ; - Test_Permutation_sym -> Test_perm_swap [] ; - Test_Permutation_sym -> Test_perm_skip [] ; - Test_Permutation_sym -> Test_perm_nil [] ; - Test_Permutation_refl -> Test_perm_skip [] ; - Test_Permutation_refl -> Test_perm_nil [] ; - Test_Permutation_refl -> Test_Permutation [] ; - Test_Permutation_refl -> Test_list_ind [] ; - Test_Permutation_nil_cons -> Test_Permutation_nil [] ; - Test_Permutation_nil -> Test_Permutation_ind [] ; - Test_Permutation_nil -> Test_nil_cons [] ; - Test_Permutation_sind -> Test_Permutation [] ; - Test_Permutation_ind -> Test_Permutation [] ; - Test_perm_trans -> Test_cons [] ; - Test_perm_trans -> Test_nil [] ; - Test_perm_trans -> Test_list [] ; - Test_perm_swap -> Test_cons [] ; - Test_perm_swap -> Test_nil [] ; - Test_perm_swap -> Test_list [] ; - Test_perm_skip -> Test_cons [] ; - Test_perm_skip -> Test_nil [] ; - Test_perm_skip -> Test_list [] ; - Test_perm_nil -> Test_cons [] ; - Test_perm_nil -> Test_nil [] ; - Test_perm_nil -> Test_list [] ; - Test_Permutation -> Test_cons [] ; - Test_Permutation -> Test_nil [] ; - Test_Permutation -> Test_list [] ; - Test_rev_ind -> Test_rev_list_ind [] ; - Test_rev_ind -> Test_rev_involutive [] ; - Test_rev_list_ind -> Test_rev [] ; - Test_rev_list_ind -> Test_list_ind [] ; - Test_rev_alt -> Test_rev_append_rev [] ; - Test_rev_alt -> Test_app_nil_end [] ; - Test_rev_append_rev -> Test_rev_append [] ; - Test_rev_append_rev -> Test_rev [] ; - Test_rev_append_rev -> Test_ass_app [] ; - Test_rev_ -> Test_rev_append [] ; - Test_rev_ -> Test_nil [] ; - Test_rev_append -> Test_cons [] ; - Test_rev_append -> Test_list [] ; - Test_rev_nth -> Test_rev_length [] ; - Test_rev_nth -> Test_app_nth2 [] ; - Test_rev_nth -> Test_app_nth1 [] ; - Test_rev_length -> Test_rev [] ; - Test_rev_length -> Test_app_length [] ; - Test_In_rev -> Test_rev [] ; - Test_In_rev -> Test_in_or_app [] ; - Test_In_rev -> Test_in_app_or [] ; - Test_rev_involutive -> Test_rev_unit [] ; - Test_rev_unit -> Test_distr_rev [] ; - Test_distr_rev -> Test_rev [] ; - Test_distr_rev -> Test_app_ass [] ; - Test_distr_rev -> Test_app_nil_end [] ; - Test_rev -> Test_app [] ; - Test_rev -> Test_nil [] ; - Test_count_occ_cons_neq -> Test_count_occ [] ; - Test_count_occ_cons_neq -> Test_cons [] ; - Test_count_occ_cons_eq -> Test_count_occ [] ; - Test_count_occ_cons_eq -> Test_cons [] ; - Test_count_occ_nil -> Test_count_occ [] ; - Test_count_occ_nil -> Test_nil [] ; - Test_count_occ_inv_nil -> Test_count_occ [] ; - Test_count_occ_inv_nil -> Test_list_ind [] ; - Test_count_occ_In -> Test_count_occ [] ; - Test_count_occ_In -> Test_In [] ; - Test_count_occ_In -> Test_list_ind [] ; - Test_count_occ -> Test_list [] ; -subgraph cluster_Test { label="Test"; fillcolor="#FFFFC3"; labeljust=l; style=filled -subgraph cluster_Test_ReDun { label="ReDun"; fillcolor="#FFFFA3"; labeljust=l; style=filled -Test_ReDun_A; Test_ReDun_NoDup; Test_ReDun_NoDup_nil; Test_ReDun_NoDup_cons; Test_ReDun_NoDup_ind; Test_ReDun_NoDup_sind; Test_ReDun_NoDup_remove_1; Test_ReDun_NoDup_remove_2; Test_ReDun_NoDup_Permutation; }; -Test_count_occ; Test_count_occ_In; Test_count_occ_inv_nil; Test_count_occ_nil; Test_count_occ_cons_eq; Test_count_occ_cons_neq; Test_rev; Test_distr_rev; Test_rev_unit; Test_rev_involutive; Test_In_rev; Test_rev_length; Test_rev_nth; Test_rev_append; Test_rev_; Test_rev_append_rev; Test_rev_alt; Test_rev_list_ind; Test_rev_ind; Test_Permutation; Test_perm_nil; Test_perm_skip; Test_perm_swap; Test_perm_trans; Test_Permutation_ind; Test_Permutation_sind; Test_Permutation_nil; Test_Permutation_nil_cons; Test_Permutation_refl; Test_Permutation_sym; Test_Permutation_trans; Test_Permutation_in; Test_Permutation_app_tail; Test_Permutation_app_head; Test_Permutation_app; Test_Permutation_app_swap; Test_Permutation_cons_app; Test_Permutation_length; Test_Permutation_rev; Test_Permutation_ind_bis; Test_Permutation_app_inv; Test_Permutation_cons_inv; Test_Permutation_cons_app_inv; Test_Permutation_app_inv_l; Test_Permutation_app_inv_r; Test_list_eq_dec; Test_map; Test_in_map; Test_in_map_iff; Test_map_length; Test_map_nth; Test_map_app; Test_map_rev; Test_Permutation_map; Test_flat_map; Test_in_flat_map; Test_map_map; Test_map_ext; Test_fold_left; Test_fold_left_app; Test_fold_left_length; Test_fold_right; Test_fold_right_app; Test_fold_left_rev_right; Test_fold_symmetric; Test_list_power; Test_existsb; Test_existsb_exists; Test_existsb_nth; Test_forallb; Test_forallb_forall; Test_filter; Test_filter_In; Test_list; Test_find; Test_nil; Test_partition; Test_cons; Test_list_rect; Test_split; Test_in_split_l; Test_list_ind; Test_in_split_r; Test_list_rec; Test_list_sind; Test_split_nth; Test_head; Test_split_length_l; Test_hd; Test_split_length_r; Test_combine; Test_tail; Test_length; Test_split_combine; Test_combine_split; Test_size; Test_in_combine_l; Test_size_nil; Test_In; Test_in_combine_r; Test_app; Test_combine_length; Test_combine_nth; Test_nil_cons; Test_destruct_list; Test_list_prod; Test_head_nil; Test_in_prod_aux; Test_head_cons; Test_in_prod; Test_in_eq; Test_in_prod_iff; Test_in_cons; Test_prod_length; Test_in_nil; Test_lel; Test_In_split; Test_lel_refl; Test_in_inv; Test_lel_trans; Test_In_dec; Test_lel_cons_cons; Test_app_cons_not_nil; Test_lel_cons; Test_app_nil_end; Test_lel_tail; Test_app_ass; Test_lel_nil; Test_ass_app; Test_incl; Test_app_comm_cons; Test_incl_refl; Test_app_eq_nil; Test_incl_tl; Test_app_eq_unit; Test_incl_tran; Test_app_inj_tail; Test_incl_appl; Test_app_length; Test_incl_appr; Test_in_app_or; Test_incl_cons; Test_in_or_app; Test_incl_app; Test_app_inv_head; Test_firstn; Test_app_inv_tail; Test_skipn; Test_firstn_skipn; Test_nth; Test_firstn_length; Test_nth_ok; Test_nth_in_or_default; Test_removelast_firstn; Test_firstn_removelast; Test_nth_S_cons; Test_nth_error; Test_seq; Test_nth_default; Test_seq_length; Test_nth_In; Test_seq_nth; Test_nth_overflow; Test_seq_shift; Test_nth_indep; Test_app_nth1; Test_app_nth2; Test_remove; Test_remove_In; Test_last; Test_removelast; Test_app_removelast_last; Test_exists_last; Test_removelast_app; }; -} /* END */ diff --git a/tests/graph.dpd.oracle b/tests/graph.dpd.oracle deleted file mode 100644 index 7e227582e..000000000 --- a/tests/graph.dpd.oracle +++ /dev/null @@ -1,1100 +0,0 @@ -N: 9 "A" [body=no, kind=cnst, prop=no, path="Test.ReDun", ]; -N: 170 "In" [body=yes, kind=cnst, prop=no, path="Test", ]; -N: 159 "In_dec" [body=yes, kind=cnst, prop=no, path="Test", ]; -N: 117 "In_rev" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 161 "In_split" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 1 "NoDup_Permutation" [body=yes, kind=cnst, prop=yes, path="Test.ReDun", ]; -N: 5 "NoDup_ind" [body=yes, kind=cnst, prop=yes, path="Test.ReDun", ]; -N: 3 "NoDup_remove_1" [body=yes, kind=cnst, prop=yes, path="Test.ReDun", ]; -N: 2 "NoDup_remove_2" [body=yes, kind=cnst, prop=yes, path="Test.ReDun", ]; -N: 4 "NoDup_sind" [body=yes, kind=cnst, prop=no, path="Test.ReDun", ]; -N: 93 "Permutation_app" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 94 "Permutation_app_head" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 87 "Permutation_app_inv" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 84 "Permutation_app_inv_l" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 83 "Permutation_app_inv_r" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 92 "Permutation_app_swap" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 95 "Permutation_app_tail" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 91 "Permutation_cons_app" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 85 "Permutation_cons_app_inv" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 86 "Permutation_cons_inv" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 96 "Permutation_in" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 103 "Permutation_ind" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 88 "Permutation_ind_bis" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 90 "Permutation_length" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 74 "Permutation_map" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 101 "Permutation_nil" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 100 "Permutation_nil_cons" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 99 "Permutation_refl" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 89 "Permutation_rev" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 102 "Permutation_sind" [body=yes, kind=cnst, prop=no, path="Test", ]; -N: 98 "Permutation_sym" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 97 "Permutation_trans" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 169 "app" [body=yes, kind=cnst, prop=no, path="Test", ]; -N: 156 "app_ass" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 154 "app_comm_cons" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 158 "app_cons_not_nil" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 153 "app_eq_nil" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 152 "app_eq_unit" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 151 "app_inj_tail" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 147 "app_inv_head" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 146 "app_inv_tail" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 150 "app_length" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 157 "app_nil_end" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 136 "app_nth1" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 135 "app_nth2" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 130 "app_removelast_last" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 155 "ass_app" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 46 "combine" [body=yes, kind=cnst, prop=no, path="Test", ]; -N: 41 "combine_length" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 40 "combine_nth" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 44 "combine_split" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 127 "count_occ" [body=yes, kind=cnst, prop=no, path="Test", ]; -N: 126 "count_occ_In" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 123 "count_occ_cons_eq" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 122 "count_occ_cons_neq" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 125 "count_occ_inv_nil" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 124 "count_occ_nil" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 167 "destruct_list" [body=yes, kind=cnst, prop=no, path="Test", ]; -N: 120 "distr_rev" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 129 "exists_last" [body=yes, kind=cnst, prop=no, path="Test", ]; -N: 61 "existsb" [body=yes, kind=cnst, prop=no, path="Test", ]; -N: 60 "existsb_exists" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 59 "existsb_nth" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 56 "filter" [body=yes, kind=cnst, prop=no, path="Test", ]; -N: 55 "filter_In" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 54 "find" [body=yes, kind=cnst, prop=no, path="Test", ]; -N: 19 "firstn" [body=yes, kind=cnst, prop=no, path="Test", ]; -N: 16 "firstn_length" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 14 "firstn_removelast" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 17 "firstn_skipn" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 73 "flat_map" [body=yes, kind=cnst, prop=no, path="Test", ]; -N: 69 "fold_left" [body=yes, kind=cnst, prop=no, path="Test", ]; -N: 68 "fold_left_app" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 67 "fold_left_length" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 64 "fold_left_rev_right" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 66 "fold_right" [body=yes, kind=cnst, prop=no, path="Test", ]; -N: 65 "fold_right_app" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 63 "fold_symmetric" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 58 "forallb" [body=yes, kind=cnst, prop=no, path="Test", ]; -N: 57 "forallb_forall" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 175 "hd" [body=yes, kind=cnst, prop=no, path="Test", ]; -N: 176 "head" [body=yes, kind=cnst, prop=no, path="Test", ]; -N: 165 "head_cons" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 166 "head_nil" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 149 "in_app_or" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 43 "in_combine_l" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 42 "in_combine_r" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 163 "in_cons" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 164 "in_eq" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 72 "in_flat_map" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 160 "in_inv" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 80 "in_map" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 79 "in_map_iff" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 162 "in_nil" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 148 "in_or_app" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 37 "in_prod" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 38 "in_prod_aux" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 36 "in_prod_iff" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 51 "in_split_l" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 50 "in_split_r" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 27 "incl" [body=yes, kind=cnst, prop=no, path="Test", ]; -N: 20 "incl_app" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 23 "incl_appl" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 22 "incl_appr" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 21 "incl_cons" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 26 "incl_refl" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 25 "incl_tl" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 24 "incl_tran" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 132 "last" [body=yes, kind=cnst, prop=no, path="Test", ]; -N: 34 "lel" [body=yes, kind=cnst, prop=no, path="Test", ]; -N: 30 "lel_cons" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 31 "lel_cons_cons" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 28 "lel_nil" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 33 "lel_refl" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 29 "lel_tail" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 32 "lel_trans" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 173 "length" [body=yes, kind=cnst, prop=no, path="Test", ]; -N: 82 "list_eq_dec" [body=yes, kind=cnst, prop=no, path="Test", ]; -N: 179 "list_ind" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 62 "list_power" [body=yes, kind=cnst, prop=no, path="Test", ]; -N: 39 "list_prod" [body=yes, kind=cnst, prop=no, path="Test", ]; -N: 178 "list_rec" [body=yes, kind=cnst, prop=no, path="Test", ]; -N: 180 "list_rect" [body=yes, kind=cnst, prop=no, path="Test", ]; -N: 177 "list_sind" [body=yes, kind=cnst, prop=no, path="Test", ]; -N: 81 "map" [body=yes, kind=cnst, prop=no, path="Test", ]; -N: 76 "map_app" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 70 "map_ext" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 78 "map_length" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 71 "map_map" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 77 "map_nth" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 75 "map_rev" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 168 "nil_cons" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 145 "nth" [body=yes, kind=cnst, prop=no, path="Test", ]; -N: 139 "nth_In" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 142 "nth_S_cons" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 140 "nth_default" [body=yes, kind=cnst, prop=no, path="Test", ]; -N: 141 "nth_error" [body=yes, kind=cnst, prop=no, path="Test", ]; -N: 143 "nth_in_or_default" [body=yes, kind=cnst, prop=no, path="Test", ]; -N: 137 "nth_indep" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 144 "nth_ok" [body=yes, kind=cnst, prop=no, path="Test", ]; -N: 138 "nth_overflow" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 53 "partition" [body=yes, kind=cnst, prop=no, path="Test", ]; -N: 35 "prod_length" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 134 "remove" [body=yes, kind=cnst, prop=no, path="Test", ]; -N: 133 "remove_In" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 131 "removelast" [body=yes, kind=cnst, prop=no, path="Test", ]; -N: 128 "removelast_app" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 15 "removelast_firstn" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 121 "rev" [body=yes, kind=cnst, prop=no, path="Test", ]; -N: 113 "rev'" [body=yes, kind=cnst, prop=no, path="Test", ]; -N: 111 "rev_alt" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 114 "rev_append" [body=yes, kind=cnst, prop=no, path="Test", ]; -N: 112 "rev_append_rev" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 109 "rev_ind" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 118 "rev_involutive" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 116 "rev_length" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 110 "rev_list_ind" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 115 "rev_nth" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 119 "rev_unit" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 13 "seq" [body=yes, kind=cnst, prop=no, path="Test", ]; -N: 12 "seq_length" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 11 "seq_nth" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 10 "seq_shift" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 172 "size" [body=no, kind=cnst, prop=no, path="Test", ]; -N: 171 "size_nil" [body=no, kind=cnst, prop=yes, path="Test", ]; -N: 18 "skipn" [body=yes, kind=cnst, prop=no, path="Test", ]; -N: 52 "split" [body=yes, kind=cnst, prop=no, path="Test", ]; -N: 45 "split_combine" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 48 "split_length_l" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 47 "split_length_r" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 49 "split_nth" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 174 "tail" [body=yes, kind=cnst, prop=no, path="Test", ]; -N: 8 "NoDup" [kind=inductive, prop=no, path="Test.ReDun", ]; -N: 108 "Permutation" [kind=inductive, prop=no, path="Test", ]; -N: 183 "list" [kind=inductive, prop=no, path="Test", ]; -N: 7 "NoDup_nil" [kind=construct, prop=yes, path="Test.ReDun", ]; -N: 107 "perm_nil" [kind=construct, prop=yes, path="Test", ]; -N: 182 "nil" [kind=construct, prop=no, path="Test", ]; -N: 6 "NoDup_cons" [kind=construct, prop=yes, path="Test.ReDun", ]; -N: 106 "perm_skip" [kind=construct, prop=yes, path="Test", ]; -N: 181 "cons" [kind=construct, prop=no, path="Test", ]; -N: 105 "perm_swap" [kind=construct, prop=yes, path="Test", ]; -N: 104 "perm_trans" [kind=construct, prop=yes, path="Test", ]; -E: 1 2 [weight=1, ]; -E: 1 3 [weight=1, ]; -E: 1 8 [weight=25, ]; -E: 1 9 [weight=415, ]; -E: 1 91 [weight=1, ]; -E: 1 107 [weight=1, ]; -E: 1 108 [weight=16, ]; -E: 1 148 [weight=2, ]; -E: 1 149 [weight=2, ]; -E: 1 161 [weight=1, ]; -E: 1 169 [weight=39, ]; -E: 1 170 [weight=129, ]; -E: 1 179 [weight=1, ]; -E: 1 181 [weight=82, ]; -E: 1 182 [weight=20, ]; -E: 1 183 [weight=66, ]; -E: 2 8 [weight=19, ]; -E: 2 9 [weight=256, ]; -E: 2 148 [weight=1, ]; -E: 2 169 [weight=43, ]; -E: 2 170 [weight=33, ]; -E: 2 179 [weight=1, ]; -E: 2 181 [weight=66, ]; -E: 2 182 [weight=8, ]; -E: 2 183 [weight=64, ]; -E: 3 6 [weight=1, ]; -E: 3 8 [weight=32, ]; -E: 3 9 [weight=230, ]; -E: 3 148 [weight=1, ]; -E: 3 149 [weight=1, ]; -E: 3 169 [weight=37, ]; -E: 3 170 [weight=27, ]; -E: 3 179 [weight=1, ]; -E: 3 181 [weight=67, ]; -E: 3 182 [weight=8, ]; -E: 3 183 [weight=61, ]; -E: 4 8 [weight=6, ]; -E: 4 9 [weight=15, ]; -E: 4 170 [weight=2, ]; -E: 4 181 [weight=2, ]; -E: 4 182 [weight=2, ]; -E: 4 183 [weight=7, ]; -E: 5 8 [weight=6, ]; -E: 5 9 [weight=15, ]; -E: 5 170 [weight=2, ]; -E: 5 181 [weight=2, ]; -E: 5 182 [weight=2, ]; -E: 5 183 [weight=7, ]; -E: 6 9 [weight=5, ]; -E: 6 170 [weight=1, ]; -E: 6 181 [weight=1, ]; -E: 6 182 [weight=1, ]; -E: 6 183 [weight=1, ]; -E: 7 9 [weight=5, ]; -E: 7 170 [weight=1, ]; -E: 7 181 [weight=1, ]; -E: 7 182 [weight=1, ]; -E: 7 183 [weight=1, ]; -E: 8 9 [weight=5, ]; -E: 8 170 [weight=1, ]; -E: 8 181 [weight=1, ]; -E: 8 182 [weight=1, ]; -E: 8 183 [weight=1, ]; -E: 10 13 [weight=14, ]; -E: 10 81 [weight=6, ]; -E: 10 181 [weight=3, ]; -E: 10 182 [weight=1, ]; -E: 10 183 [weight=10, ]; -E: 11 13 [weight=12, ]; -E: 11 145 [weight=12, ]; -E: 11 181 [weight=3, ]; -E: 12 13 [weight=6, ]; -E: 12 173 [weight=6, ]; -E: 13 181 [weight=1, ]; -E: 13 182 [weight=1, ]; -E: 13 183 [weight=3, ]; -E: 14 19 [weight=30, ]; -E: 14 128 [weight=1, ]; -E: 14 131 [weight=17, ]; -E: 14 169 [weight=3, ]; -E: 14 173 [weight=26, ]; -E: 14 181 [weight=17, ]; -E: 14 182 [weight=27, ]; -E: 14 183 [weight=40, ]; -E: 15 19 [weight=30, ]; -E: 15 128 [weight=1, ]; -E: 15 131 [weight=11, ]; -E: 15 169 [weight=3, ]; -E: 15 173 [weight=18, ]; -E: 15 181 [weight=16, ]; -E: 15 182 [weight=37, ]; -E: 15 183 [weight=45, ]; -E: 16 19 [weight=10, ]; -E: 16 173 [weight=20, ]; -E: 16 181 [weight=4, ]; -E: 16 182 [weight=4, ]; -E: 16 183 [weight=9, ]; -E: 17 18 [weight=13, ]; -E: 17 19 [weight=13, ]; -E: 17 169 [weight=13, ]; -E: 17 181 [weight=10, ]; -E: 17 182 [weight=4, ]; -E: 17 183 [weight=29, ]; -E: 18 182 [weight=1, ]; -E: 18 183 [weight=8, ]; -E: 19 181 [weight=1, ]; -E: 19 182 [weight=2, ]; -E: 19 183 [weight=8, ]; -E: 20 27 [weight=6, ]; -E: 20 149 [weight=1, ]; -E: 20 169 [weight=4, ]; -E: 20 170 [weight=16, ]; -E: 20 183 [weight=12, ]; -E: 21 27 [weight=4, ]; -E: 21 170 [weight=18, ]; -E: 21 181 [weight=3, ]; -E: 21 183 [weight=8, ]; -E: 22 27 [weight=4, ]; -E: 22 148 [weight=1, ]; -E: 22 169 [weight=2, ]; -E: 22 170 [weight=3, ]; -E: 22 183 [weight=6, ]; -E: 23 27 [weight=4, ]; -E: 23 148 [weight=1, ]; -E: 23 169 [weight=2, ]; -E: 23 170 [weight=3, ]; -E: 23 183 [weight=6, ]; -E: 24 27 [weight=6, ]; -E: 24 170 [weight=1, ]; -E: 24 183 [weight=6, ]; -E: 25 27 [weight=4, ]; -E: 25 163 [weight=1, ]; -E: 25 170 [weight=1, ]; -E: 25 181 [weight=2, ]; -E: 25 183 [weight=4, ]; -E: 26 27 [weight=2, ]; -E: 26 170 [weight=1, ]; -E: 26 183 [weight=2, ]; -E: 27 170 [weight=2, ]; -E: 27 183 [weight=4, ]; -E: 28 34 [weight=5, ]; -E: 28 173 [weight=1, ]; -E: 28 179 [weight=1, ]; -E: 28 181 [weight=2, ]; -E: 28 182 [weight=11, ]; -E: 28 183 [weight=9, ]; -E: 29 34 [weight=4, ]; -E: 29 173 [weight=8, ]; -E: 29 181 [weight=6, ]; -E: 29 183 [weight=4, ]; -E: 30 34 [weight=4, ]; -E: 30 173 [weight=8, ]; -E: 30 181 [weight=3, ]; -E: 30 183 [weight=4, ]; -E: 31 34 [weight=4, ]; -E: 31 173 [weight=14, ]; -E: 31 181 [weight=6, ]; -E: 31 183 [weight=4, ]; -E: 32 34 [weight=6, ]; -E: 32 173 [weight=7, ]; -E: 32 183 [weight=6, ]; -E: 33 34 [weight=2, ]; -E: 33 173 [weight=1, ]; -E: 33 183 [weight=2, ]; -E: 34 173 [weight=2, ]; -E: 34 183 [weight=4, ]; -E: 35 39 [weight=10, ]; -E: 35 78 [weight=1, ]; -E: 35 81 [weight=4, ]; -E: 35 150 [weight=1, ]; -E: 35 169 [weight=1, ]; -E: 35 173 [weight=31, ]; -E: 35 179 [weight=1, ]; -E: 35 181 [weight=2, ]; -E: 35 182 [weight=2, ]; -E: 35 183 [weight=11, ]; -E: 36 37 [weight=1, ]; -E: 36 39 [weight=12, ]; -E: 36 79 [weight=1, ]; -E: 36 81 [weight=11, ]; -E: 36 149 [weight=1, ]; -E: 36 169 [weight=1, ]; -E: 36 170 [weight=87, ]; -E: 36 179 [weight=1, ]; -E: 36 181 [weight=2, ]; -E: 36 182 [weight=2, ]; -E: 36 183 [weight=6, ]; -E: 37 38 [weight=1, ]; -E: 37 39 [weight=9, ]; -E: 37 81 [weight=5, ]; -E: 37 148 [weight=1, ]; -E: 37 170 [weight=27, ]; -E: 37 179 [weight=1, ]; -E: 37 181 [weight=2, ]; -E: 37 182 [weight=2, ]; -E: 37 183 [weight=11, ]; -E: 38 81 [weight=8, ]; -E: 38 170 [weight=16, ]; -E: 38 179 [weight=1, ]; -E: 38 181 [weight=2, ]; -E: 38 182 [weight=2, ]; -E: 38 183 [weight=4, ]; -E: 39 81 [weight=1, ]; -E: 39 169 [weight=1, ]; -E: 39 182 [weight=1, ]; -E: 39 183 [weight=10, ]; -E: 40 46 [weight=13, ]; -E: 40 145 [weight=39, ]; -E: 40 173 [weight=24, ]; -E: 40 179 [weight=1, ]; -E: 40 181 [weight=25, ]; -E: 40 182 [weight=25, ]; -E: 40 183 [weight=13, ]; -E: 41 46 [weight=8, ]; -E: 41 173 [weight=24, ]; -E: 41 179 [weight=1, ]; -E: 41 181 [weight=8, ]; -E: 41 182 [weight=4, ]; -E: 41 183 [weight=12, ]; -E: 42 46 [weight=10, ]; -E: 42 170 [weight=21, ]; -E: 42 179 [weight=1, ]; -E: 42 181 [weight=5, ]; -E: 42 182 [weight=3, ]; -E: 42 183 [weight=12, ]; -E: 43 46 [weight=10, ]; -E: 43 170 [weight=21, ]; -E: 43 179 [weight=1, ]; -E: 43 181 [weight=7, ]; -E: 43 182 [weight=3, ]; -E: 43 183 [weight=12, ]; -E: 44 46 [weight=10, ]; -E: 44 52 [weight=10, ]; -E: 44 173 [weight=30, ]; -E: 44 179 [weight=1, ]; -E: 44 181 [weight=23, ]; -E: 44 182 [weight=23, ]; -E: 44 183 [weight=88, ]; -E: 45 46 [weight=16, ]; -E: 45 52 [weight=7, ]; -E: 45 179 [weight=1, ]; -E: 45 181 [weight=17, ]; -E: 45 182 [weight=3, ]; -E: 45 183 [weight=55, ]; -E: 46 181 [weight=1, ]; -E: 46 182 [weight=2, ]; -E: 46 183 [weight=12, ]; -E: 47 52 [weight=7, ]; -E: 47 173 [weight=22, ]; -E: 47 179 [weight=1, ]; -E: 47 181 [weight=8, ]; -E: 47 182 [weight=2, ]; -E: 47 183 [weight=48, ]; -E: 48 52 [weight=7, ]; -E: 48 173 [weight=22, ]; -E: 48 179 [weight=1, ]; -E: 48 181 [weight=8, ]; -E: 48 182 [weight=2, ]; -E: 48 183 [weight=48, ]; -E: 49 52 [weight=32, ]; -E: 49 145 [weight=66, ]; -E: 49 179 [weight=1, ]; -E: 49 181 [weight=39, ]; -E: 49 182 [weight=15, ]; -E: 49 183 [weight=180, ]; -E: 50 52 [weight=8, ]; -E: 50 170 [weight=28, ]; -E: 50 179 [weight=1, ]; -E: 50 181 [weight=10, ]; -E: 50 182 [weight=2, ]; -E: 50 183 [weight=58, ]; -E: 51 52 [weight=8, ]; -E: 51 170 [weight=28, ]; -E: 51 179 [weight=1, ]; -E: 51 181 [weight=10, ]; -E: 51 182 [weight=2, ]; -E: 51 183 [weight=58, ]; -E: 52 181 [weight=2, ]; -E: 52 182 [weight=2, ]; -E: 52 183 [weight=20, ]; -E: 53 181 [weight=2, ]; -E: 53 182 [weight=2, ]; -E: 53 183 [weight=22, ]; -E: 54 183 [weight=4, ]; -E: 55 56 [weight=49, ]; -E: 55 170 [weight=107, ]; -E: 55 179 [weight=1, ]; -E: 55 181 [weight=5, ]; -E: 55 182 [weight=2, ]; -E: 55 183 [weight=6, ]; -E: 56 181 [weight=1, ]; -E: 56 182 [weight=1, ]; -E: 56 183 [weight=8, ]; -E: 57 58 [weight=25, ]; -E: 57 170 [weight=19, ]; -E: 57 179 [weight=1, ]; -E: 57 181 [weight=2, ]; -E: 57 182 [weight=2, ]; -E: 57 183 [weight=4, ]; -E: 58 183 [weight=4, ]; -E: 59 61 [weight=13, ]; -E: 59 145 [weight=11, ]; -E: 59 173 [weight=24, ]; -E: 59 179 [weight=1, ]; -E: 59 181 [weight=3, ]; -E: 59 182 [weight=19, ]; -E: 59 183 [weight=4, ]; -E: 60 61 [weight=37, ]; -E: 60 170 [weight=55, ]; -E: 60 179 [weight=1, ]; -E: 60 181 [weight=2, ]; -E: 60 182 [weight=2, ]; -E: 60 183 [weight=4, ]; -E: 61 183 [weight=4, ]; -E: 62 73 [weight=1, ]; -E: 62 81 [weight=1, ]; -E: 62 181 [weight=2, ]; -E: 62 182 [weight=2, ]; -E: 62 183 [weight=19, ]; -E: 63 66 [weight=18, ]; -E: 63 69 [weight=13, ]; -E: 63 179 [weight=1, ]; -E: 63 181 [weight=4, ]; -E: 63 182 [weight=3, ]; -E: 63 183 [weight=6, ]; -E: 64 65 [weight=1, ]; -E: 64 66 [weight=10, ]; -E: 64 69 [weight=7, ]; -E: 64 121 [weight=9, ]; -E: 64 169 [weight=1, ]; -E: 64 179 [weight=1, ]; -E: 64 181 [weight=6, ]; -E: 64 182 [weight=6, ]; -E: 64 183 [weight=4, ]; -E: 65 66 [weight=30, ]; -E: 65 169 [weight=11, ]; -E: 65 179 [weight=1, ]; -E: 65 181 [weight=2, ]; -E: 65 182 [weight=2, ]; -E: 65 183 [weight=11, ]; -E: 66 183 [weight=4, ]; -E: 67 69 [weight=8, ]; -E: 67 173 [weight=12, ]; -E: 67 179 [weight=1, ]; -E: 67 181 [weight=2, ]; -E: 67 182 [weight=2, ]; -E: 67 183 [weight=7, ]; -E: 68 69 [weight=16, ]; -E: 68 169 [weight=5, ]; -E: 68 179 [weight=1, ]; -E: 68 181 [weight=2, ]; -E: 68 182 [weight=2, ]; -E: 68 183 [weight=10, ]; -E: 69 183 [weight=4, ]; -E: 70 81 [weight=16, ]; -E: 70 179 [weight=1, ]; -E: 70 181 [weight=7, ]; -E: 70 182 [weight=3, ]; -E: 70 183 [weight=15, ]; -E: 71 81 [weight=20, ]; -E: 71 179 [weight=1, ]; -E: 71 181 [weight=5, ]; -E: 71 182 [weight=3, ]; -E: 71 183 [weight=14, ]; -E: 72 73 [weight=32, ]; -E: 72 148 [weight=1, ]; -E: 72 149 [weight=1, ]; -E: 72 169 [weight=3, ]; -E: 72 170 [weight=129, ]; -E: 72 179 [weight=1, ]; -E: 72 181 [weight=2, ]; -E: 72 182 [weight=2, ]; -E: 72 183 [weight=6, ]; -E: 73 169 [weight=1, ]; -E: 73 182 [weight=1, ]; -E: 73 183 [weight=10, ]; -E: 74 81 [weight=24, ]; -E: 74 103 [weight=1, ]; -E: 74 104 [weight=1, ]; -E: 74 105 [weight=1, ]; -E: 74 106 [weight=1, ]; -E: 74 107 [weight=1, ]; -E: 74 108 [weight=14, ]; -E: 74 181 [weight=6, ]; -E: 74 182 [weight=2, ]; -E: 74 183 [weight=12, ]; -E: 75 76 [weight=1, ]; -E: 75 81 [weight=19, ]; -E: 75 121 [weight=18, ]; -E: 75 169 [weight=6, ]; -E: 75 179 [weight=1, ]; -E: 75 181 [weight=9, ]; -E: 75 182 [weight=10, ]; -E: 75 183 [weight=17, ]; -E: 76 81 [weight=23, ]; -E: 76 169 [weight=14, ]; -E: 76 179 [weight=1, ]; -E: 76 181 [weight=5, ]; -E: 76 182 [weight=2, ]; -E: 76 183 [weight=21, ]; -E: 77 81 [weight=8, ]; -E: 77 145 [weight=21, ]; -E: 77 179 [weight=1, ]; -E: 77 181 [weight=5, ]; -E: 77 182 [weight=6, ]; -E: 77 183 [weight=4, ]; -E: 78 81 [weight=6, ]; -E: 78 173 [weight=12, ]; -E: 78 179 [weight=1, ]; -E: 78 181 [weight=2, ]; -E: 78 182 [weight=2, ]; -E: 78 183 [weight=4, ]; -E: 79 81 [weight=50, ]; -E: 79 170 [weight=125, ]; -E: 79 179 [weight=1, ]; -E: 79 181 [weight=21, ]; -E: 79 182 [weight=13, ]; -E: 79 183 [weight=4, ]; -E: 80 81 [weight=8, ]; -E: 80 170 [weight=16, ]; -E: 80 179 [weight=1, ]; -E: 80 181 [weight=2, ]; -E: 80 182 [weight=2, ]; -E: 80 183 [weight=4, ]; -E: 81 181 [weight=1, ]; -E: 81 182 [weight=1, ]; -E: 81 183 [weight=7, ]; -E: 82 168 [weight=2, ]; -E: 82 180 [weight=1, ]; -E: 82 181 [weight=70, ]; -E: 82 182 [weight=14, ]; -E: 82 183 [weight=102, ]; -E: 83 87 [weight=1, ]; -E: 83 108 [weight=12, ]; -E: 83 157 [weight=2, ]; -E: 83 169 [weight=11, ]; -E: 83 179 [weight=1, ]; -E: 83 181 [weight=2, ]; -E: 83 182 [weight=3, ]; -E: 83 183 [weight=18, ]; -E: 84 86 [weight=1, ]; -E: 84 108 [weight=12, ]; -E: 84 169 [weight=14, ]; -E: 84 179 [weight=1, ]; -E: 84 181 [weight=4, ]; -E: 84 182 [weight=2, ]; -E: 84 183 [weight=18, ]; -E: 85 87 [weight=1, ]; -E: 85 108 [weight=3, ]; -E: 85 169 [weight=3, ]; -E: 85 181 [weight=4, ]; -E: 85 182 [weight=1, ]; -E: 85 183 [weight=6, ]; -E: 86 87 [weight=1, ]; -E: 86 108 [weight=3, ]; -E: 86 181 [weight=4, ]; -E: 86 182 [weight=2, ]; -E: 86 183 [weight=4, ]; -E: 87 88 [weight=1, ]; -E: 87 91 [weight=6, ]; -E: 87 96 [weight=1, ]; -E: 87 98 [weight=23, ]; -E: 87 99 [weight=6, ]; -E: 87 104 [weight=10, ]; -E: 87 105 [weight=3, ]; -E: 87 106 [weight=15, ]; -E: 87 108 [weight=191, ]; -E: 87 148 [weight=1, ]; -E: 87 161 [weight=1, ]; -E: 87 169 [weight=631, ]; -E: 87 170 [weight=4, ]; -E: 87 181 [weight=975, ]; -E: 87 182 [weight=35, ]; -E: 87 183 [weight=814, ]; -E: 88 99 [weight=6, ]; -E: 88 103 [weight=1, ]; -E: 88 105 [weight=1, ]; -E: 88 108 [weight=13, ]; -E: 88 179 [weight=2, ]; -E: 88 181 [weight=23, ]; -E: 88 182 [weight=4, ]; -E: 88 183 [weight=34, ]; -E: 89 92 [weight=1, ]; -E: 89 97 [weight=1, ]; -E: 89 98 [weight=2, ]; -E: 89 99 [weight=1, ]; -E: 89 106 [weight=1, ]; -E: 89 108 [weight=6, ]; -E: 89 121 [weight=12, ]; -E: 89 169 [weight=3, ]; -E: 89 179 [weight=1, ]; -E: 89 181 [weight=12, ]; -E: 89 182 [weight=7, ]; -E: 89 183 [weight=4, ]; -E: 90 103 [weight=1, ]; -E: 90 108 [weight=5, ]; -E: 90 173 [weight=24, ]; -E: 90 181 [weight=6, ]; -E: 90 182 [weight=2, ]; -E: 90 183 [weight=12, ]; -E: 91 99 [weight=1, ]; -E: 91 104 [weight=2, ]; -E: 91 105 [weight=1, ]; -E: 91 106 [weight=3, ]; -E: 91 108 [weight=12, ]; -E: 91 169 [weight=22, ]; -E: 91 179 [weight=1, ]; -E: 91 181 [weight=27, ]; -E: 91 182 [weight=2, ]; -E: 91 183 [weight=19, ]; -E: 92 97 [weight=3, ]; -E: 92 98 [weight=3, ]; -E: 92 99 [weight=2, ]; -E: 92 105 [weight=1, ]; -E: 92 106 [weight=3, ]; -E: 92 108 [weight=11, ]; -E: 92 154 [weight=1, ]; -E: 92 157 [weight=2, ]; -E: 92 169 [weight=43, ]; -E: 92 179 [weight=2, ]; -E: 92 181 [weight=42, ]; -E: 92 182 [weight=6, ]; -E: 92 183 [weight=18, ]; -E: 93 94 [weight=1, ]; -E: 93 95 [weight=1, ]; -E: 93 97 [weight=2, ]; -E: 93 98 [weight=2, ]; -E: 93 103 [weight=1, ]; -E: 93 105 [weight=1, ]; -E: 93 106 [weight=1, ]; -E: 93 108 [weight=22, ]; -E: 93 154 [weight=10, ]; -E: 93 169 [weight=53, ]; -E: 93 181 [weight=66, ]; -E: 93 183 [weight=36, ]; -E: 94 106 [weight=1, ]; -E: 94 108 [weight=7, ]; -E: 94 154 [weight=2, ]; -E: 94 169 [weight=14, ]; -E: 94 179 [weight=1, ]; -E: 94 181 [weight=6, ]; -E: 94 183 [weight=12, ]; -E: 95 97 [weight=1, ]; -E: 95 98 [weight=2, ]; -E: 95 99 [weight=1, ]; -E: 95 103 [weight=1, ]; -E: 95 105 [weight=1, ]; -E: 95 106 [weight=1, ]; -E: 95 108 [weight=14, ]; -E: 95 169 [weight=28, ]; -E: 95 181 [weight=10, ]; -E: 95 182 [weight=2, ]; -E: 95 183 [weight=14, ]; -E: 96 103 [weight=1, ]; -E: 96 108 [weight=5, ]; -E: 96 170 [weight=40, ]; -E: 96 181 [weight=6, ]; -E: 96 182 [weight=2, ]; -E: 96 183 [weight=12, ]; -E: 97 104 [weight=1, ]; -E: 97 108 [weight=3, ]; -E: 97 183 [weight=3, ]; -E: 98 103 [weight=1, ]; -E: 98 104 [weight=1, ]; -E: 98 105 [weight=1, ]; -E: 98 106 [weight=1, ]; -E: 98 107 [weight=1, ]; -E: 98 108 [weight=10, ]; -E: 98 183 [weight=12, ]; -E: 99 106 [weight=1, ]; -E: 99 107 [weight=1, ]; -E: 99 108 [weight=3, ]; -E: 99 179 [weight=1, ]; -E: 99 183 [weight=4, ]; -E: 100 101 [weight=1, ]; -E: 100 108 [weight=3, ]; -E: 100 168 [weight=1, ]; -E: 100 181 [weight=5, ]; -E: 100 182 [weight=4, ]; -E: 100 183 [weight=4, ]; -E: 101 103 [weight=1, ]; -E: 101 108 [weight=5, ]; -E: 101 168 [weight=2, ]; -E: 101 181 [weight=10, ]; -E: 101 182 [weight=23, ]; -E: 101 183 [weight=30, ]; -E: 102 108 [weight=10, ]; -E: 102 181 [weight=12, ]; -E: 102 182 [weight=4, ]; -E: 102 183 [weight=22, ]; -E: 103 108 [weight=10, ]; -E: 103 181 [weight=12, ]; -E: 103 182 [weight=4, ]; -E: 103 183 [weight=22, ]; -E: 104 181 [weight=6, ]; -E: 104 182 [weight=2, ]; -E: 104 183 [weight=6, ]; -E: 105 181 [weight=6, ]; -E: 105 182 [weight=2, ]; -E: 105 183 [weight=6, ]; -E: 106 181 [weight=6, ]; -E: 106 182 [weight=2, ]; -E: 106 183 [weight=6, ]; -E: 107 181 [weight=6, ]; -E: 107 182 [weight=2, ]; -E: 107 183 [weight=6, ]; -E: 108 181 [weight=6, ]; -E: 108 182 [weight=2, ]; -E: 108 183 [weight=6, ]; -E: 109 110 [weight=1, ]; -E: 109 118 [weight=1, ]; -E: 109 121 [weight=9, ]; -E: 109 169 [weight=2, ]; -E: 109 181 [weight=3, ]; -E: 109 182 [weight=4, ]; -E: 109 183 [weight=11, ]; -E: 110 121 [weight=7, ]; -E: 110 179 [weight=1, ]; -E: 110 181 [weight=2, ]; -E: 110 182 [weight=2, ]; -E: 110 183 [weight=8, ]; -E: 111 112 [weight=1, ]; -E: 111 114 [weight=2, ]; -E: 111 121 [weight=4, ]; -E: 111 157 [weight=1, ]; -E: 111 169 [weight=1, ]; -E: 111 182 [weight=4, ]; -E: 111 183 [weight=6, ]; -E: 112 114 [weight=7, ]; -E: 112 121 [weight=9, ]; -E: 112 155 [weight=1, ]; -E: 112 169 [weight=10, ]; -E: 112 179 [weight=1, ]; -E: 112 181 [weight=9, ]; -E: 112 182 [weight=5, ]; -E: 112 183 [weight=21, ]; -E: 113 114 [weight=1, ]; -E: 113 182 [weight=1, ]; -E: 113 183 [weight=3, ]; -E: 114 181 [weight=1, ]; -E: 114 183 [weight=10, ]; -E: 115 116 [weight=2, ]; -E: 115 121 [weight=36, ]; -E: 115 135 [weight=1, ]; -E: 115 136 [weight=1, ]; -E: 115 145 [weight=43, ]; -E: 115 169 [weight=10, ]; -E: 115 173 [weight=78, ]; -E: 115 179 [weight=1, ]; -E: 115 181 [weight=30, ]; -E: 115 182 [weight=37, ]; -E: 115 183 [weight=4, ]; -E: 116 121 [weight=9, ]; -E: 116 150 [weight=1, ]; -E: 116 169 [weight=1, ]; -E: 116 173 [weight=22, ]; -E: 116 179 [weight=1, ]; -E: 116 181 [weight=7, ]; -E: 116 182 [weight=7, ]; -E: 116 183 [weight=4, ]; -E: 117 121 [weight=30, ]; -E: 117 148 [weight=2, ]; -E: 117 149 [weight=1, ]; -E: 117 169 [weight=5, ]; -E: 117 170 [weight=62, ]; -E: 117 179 [weight=1, ]; -E: 117 181 [weight=16, ]; -E: 117 182 [weight=18, ]; -E: 117 183 [weight=4, ]; -E: 118 119 [weight=1, ]; -E: 118 121 [weight=17, ]; -E: 118 169 [weight=1, ]; -E: 118 179 [weight=1, ]; -E: 118 181 [weight=8, ]; -E: 118 182 [weight=4, ]; -E: 118 183 [weight=17, ]; -E: 119 120 [weight=1, ]; -E: 119 121 [weight=2, ]; -E: 119 169 [weight=1, ]; -E: 119 181 [weight=3, ]; -E: 119 182 [weight=2, ]; -E: 119 183 [weight=3, ]; -E: 120 121 [weight=29, ]; -E: 120 156 [weight=1, ]; -E: 120 157 [weight=1, ]; -E: 120 169 [weight=20, ]; -E: 120 179 [weight=1, ]; -E: 120 181 [weight=8, ]; -E: 120 182 [weight=13, ]; -E: 120 183 [weight=22, ]; -E: 121 169 [weight=1, ]; -E: 121 181 [weight=1, ]; -E: 121 182 [weight=2, ]; -E: 121 183 [weight=7, ]; -E: 122 127 [weight=10, ]; -E: 122 181 [weight=2, ]; -E: 122 183 [weight=2, ]; -E: 123 127 [weight=10, ]; -E: 123 181 [weight=2, ]; -E: 123 183 [weight=2, ]; -E: 124 127 [weight=2, ]; -E: 124 182 [weight=2, ]; -E: 125 127 [weight=19, ]; -E: 125 179 [weight=1, ]; -E: 125 181 [weight=3, ]; -E: 125 182 [weight=11, ]; -E: 125 183 [weight=14, ]; -E: 126 127 [weight=29, ]; -E: 126 170 [weight=27, ]; -E: 126 179 [weight=1, ]; -E: 126 181 [weight=2, ]; -E: 126 182 [weight=2, ]; -E: 126 183 [weight=4, ]; -E: 127 183 [weight=4, ]; -E: 128 131 [weight=38, ]; -E: 128 169 [weight=35, ]; -E: 128 179 [weight=1, ]; -E: 128 181 [weight=26, ]; -E: 128 182 [weight=30, ]; -E: 128 183 [weight=71, ]; -E: 129 169 [weight=25, ]; -E: 129 180 [weight=1, ]; -E: 129 181 [weight=50, ]; -E: 129 182 [weight=46, ]; -E: 129 183 [weight=75, ]; -E: 130 131 [weight=13, ]; -E: 130 132 [weight=13, ]; -E: 130 169 [weight=13, ]; -E: 130 179 [weight=1, ]; -E: 130 181 [weight=44, ]; -E: 130 182 [weight=35, ]; -E: 130 183 [weight=34, ]; -E: 131 181 [weight=1, ]; -E: 131 182 [weight=2, ]; -E: 131 183 [weight=9, ]; -E: 132 183 [weight=5, ]; -E: 133 134 [weight=12, ]; -E: 133 170 [weight=11, ]; -E: 133 179 [weight=1, ]; -E: 133 181 [weight=4, ]; -E: 133 182 [weight=2, ]; -E: 133 183 [weight=5, ]; -E: 134 181 [weight=1, ]; -E: 134 182 [weight=1, ]; -E: 134 183 [weight=8, ]; -E: 135 145 [weight=26, ]; -E: 135 169 [weight=8, ]; -E: 135 173 [weight=30, ]; -E: 135 179 [weight=1, ]; -E: 135 181 [weight=9, ]; -E: 135 182 [weight=6, ]; -E: 135 183 [weight=9, ]; -E: 136 145 [weight=24, ]; -E: 136 169 [weight=11, ]; -E: 136 173 [weight=24, ]; -E: 136 179 [weight=1, ]; -E: 136 181 [weight=9, ]; -E: 136 182 [weight=19, ]; -E: 136 183 [weight=9, ]; -E: 137 145 [weight=14, ]; -E: 137 173 [weight=13, ]; -E: 137 179 [weight=1, ]; -E: 137 181 [weight=3, ]; -E: 137 182 [weight=3, ]; -E: 137 183 [weight=4, ]; -E: 138 145 [weight=9, ]; -E: 138 173 [weight=18, ]; -E: 138 179 [weight=1, ]; -E: 138 181 [weight=6, ]; -E: 138 182 [weight=6, ]; -E: 138 183 [weight=4, ]; -E: 139 145 [weight=14, ]; -E: 139 170 [weight=14, ]; -E: 139 173 [weight=19, ]; -E: 139 181 [weight=6, ]; -E: 139 182 [weight=6, ]; -E: 139 183 [weight=12, ]; -E: 140 141 [weight=1, ]; -E: 140 183 [weight=2, ]; -E: 141 183 [weight=5, ]; -E: 142 145 [weight=7, ]; -E: 142 170 [weight=6, ]; -E: 142 181 [weight=4, ]; -E: 142 183 [weight=3, ]; -E: 143 145 [weight=32, ]; -E: 143 170 [weight=16, ]; -E: 143 178 [weight=1, ]; -E: 143 181 [weight=9, ]; -E: 143 182 [weight=4, ]; -E: 143 183 [weight=4, ]; -E: 144 183 [weight=5, ]; -E: 145 183 [weight=5, ]; -E: 146 150 [weight=2, ]; -E: 146 169 [weight=36, ]; -E: 146 173 [weight=46, ]; -E: 146 179 [weight=1, ]; -E: 146 181 [weight=38, ]; -E: 146 182 [weight=13, ]; -E: 146 183 [weight=97, ]; -E: 147 169 [weight=18, ]; -E: 147 179 [weight=1, ]; -E: 147 181 [weight=7, ]; -E: 147 182 [weight=2, ]; -E: 147 183 [weight=44, ]; -E: 148 169 [weight=11, ]; -E: 148 170 [weight=40, ]; -E: 148 179 [weight=1, ]; -E: 148 181 [weight=2, ]; -E: 148 182 [weight=2, ]; -E: 148 183 [weight=7, ]; -E: 149 169 [weight=9, ]; -E: 149 170 [weight=39, ]; -E: 149 179 [weight=1, ]; -E: 149 181 [weight=2, ]; -E: 149 182 [weight=2, ]; -E: 149 183 [weight=7, ]; -E: 150 169 [weight=6, ]; -E: 150 173 [weight=19, ]; -E: 150 179 [weight=1, ]; -E: 150 181 [weight=2, ]; -E: 150 182 [weight=2, ]; -E: 150 183 [weight=11, ]; -E: 151 158 [weight=2, ]; -E: 151 169 [weight=41, ]; -E: 151 179 [weight=1, ]; -E: 151 181 [weight=88, ]; -E: 151 182 [weight=78, ]; -E: 151 183 [weight=99, ]; -E: 152 157 [weight=1, ]; -E: 152 158 [weight=1, ]; -E: 152 169 [weight=19, ]; -E: 152 181 [weight=87, ]; -E: 152 182 [weight=107, ]; -E: 152 183 [weight=107, ]; -E: 153 169 [weight=12, ]; -E: 153 181 [weight=21, ]; -E: 153 182 [weight=56, ]; -E: 153 183 [weight=55, ]; -E: 154 169 [weight=3, ]; -E: 154 181 [weight=3, ]; -E: 154 183 [weight=6, ]; -E: 155 156 [weight=1, ]; -E: 155 169 [weight=8, ]; -E: 155 183 [weight=8, ]; -E: 156 169 [weight=29, ]; -E: 156 179 [weight=1, ]; -E: 156 181 [weight=5, ]; -E: 156 182 [weight=2, ]; -E: 156 183 [weight=18, ]; -E: 157 169 [weight=6, ]; -E: 157 179 [weight=1, ]; -E: 157 181 [weight=5, ]; -E: 157 182 [weight=9, ]; -E: 157 183 [weight=14, ]; -E: 158 169 [weight=7, ]; -E: 158 181 [weight=12, ]; -E: 158 182 [weight=10, ]; -E: 158 183 [weight=25, ]; -E: 159 162 [weight=1, ]; -E: 159 170 [weight=36, ]; -E: 159 178 [weight=1, ]; -E: 159 181 [weight=6, ]; -E: 159 182 [weight=2, ]; -E: 159 183 [weight=4, ]; -E: 160 170 [weight=10, ]; -E: 160 181 [weight=2, ]; -E: 160 183 [weight=2, ]; -E: 161 169 [weight=25, ]; -E: 161 170 [weight=8, ]; -E: 161 179 [weight=1, ]; -E: 161 181 [weight=46, ]; -E: 161 182 [weight=6, ]; -E: 161 183 [weight=103, ]; -E: 162 170 [weight=3, ]; -E: 162 182 [weight=3, ]; -E: 163 170 [weight=6, ]; -E: 163 181 [weight=2, ]; -E: 163 183 [weight=3, ]; -E: 164 170 [weight=3, ]; -E: 164 181 [weight=2, ]; -E: 164 183 [weight=3, ]; -E: 165 176 [weight=2, ]; -E: 165 181 [weight=2, ]; -E: 165 183 [weight=2, ]; -E: 166 176 [weight=2, ]; -E: 166 182 [weight=2, ]; -E: 167 180 [weight=1, ]; -E: 167 181 [weight=12, ]; -E: 167 182 [weight=8, ]; -E: 167 183 [weight=32, ]; -E: 168 181 [weight=4, ]; -E: 168 182 [weight=4, ]; -E: 168 183 [weight=8, ]; -E: 169 181 [weight=1, ]; -E: 169 183 [weight=10, ]; -E: 170 183 [weight=4, ]; -E: 171 172 [weight=1, ]; -E: 171 182 [weight=1, ]; -E: 172 183 [weight=1, ]; -E: 173 183 [weight=4, ]; -E: 174 182 [weight=1, ]; -E: 174 183 [weight=5, ]; -E: 175 183 [weight=3, ]; -E: 176 183 [weight=3, ]; -E: 177 181 [weight=2, ]; -E: 177 182 [weight=2, ]; -E: 177 183 [weight=8, ]; -E: 178 180 [weight=1, ]; -E: 178 181 [weight=1, ]; -E: 178 182 [weight=1, ]; -E: 178 183 [weight=4, ]; -E: 179 181 [weight=2, ]; -E: 179 182 [weight=2, ]; -E: 179 183 [weight=8, ]; -E: 180 181 [weight=2, ]; -E: 180 182 [weight=2, ]; -E: 180 183 [weight=8, ]; diff --git a/tests/graph.t b/tests/graph.t new file mode 100644 index 000000000..f78335af1 --- /dev/null +++ b/tests/graph.t @@ -0,0 +1,2218 @@ + $ coqc -R . dpdgraph.tests Test.v > /dev/null 2>&1 + + $ coqtop -R . dpdgraph.tests -R ../theories dpdgraph -I ../src < TestCmd.v | sed -e 's/Welcome to Coq.*/Welcome to Coq/' + + Coq < + Coq < Coq < + Coq < + Coq < + Coq < + Coq < + Welcome to Coq + [Loading ML file coq-dpdgraph.plugin ... done] + Fetching opaque proofs from disk for dpdgraph.tests.Test + Info: output dependencies in file graph.dpd + Info: output dependencies in file graph2.dpd + + + $ cat graph.dpd + N: 9 "A" [body=no, kind=cnst, prop=no, path="Test.ReDun", ]; + N: 170 "In" [body=yes, kind=cnst, prop=no, path="Test", ]; + N: 159 "In_dec" [body=yes, kind=cnst, prop=no, path="Test", ]; + N: 117 "In_rev" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 161 "In_split" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 1 "NoDup_Permutation" [body=yes, kind=cnst, prop=yes, path="Test.ReDun", ]; + N: 5 "NoDup_ind" [body=yes, kind=cnst, prop=yes, path="Test.ReDun", ]; + N: 3 "NoDup_remove_1" [body=yes, kind=cnst, prop=yes, path="Test.ReDun", ]; + N: 2 "NoDup_remove_2" [body=yes, kind=cnst, prop=yes, path="Test.ReDun", ]; + N: 4 "NoDup_sind" [body=yes, kind=cnst, prop=no, path="Test.ReDun", ]; + N: 93 "Permutation_app" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 94 "Permutation_app_head" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 87 "Permutation_app_inv" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 84 "Permutation_app_inv_l" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 83 "Permutation_app_inv_r" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 92 "Permutation_app_swap" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 95 "Permutation_app_tail" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 91 "Permutation_cons_app" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 85 "Permutation_cons_app_inv" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 86 "Permutation_cons_inv" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 96 "Permutation_in" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 103 "Permutation_ind" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 88 "Permutation_ind_bis" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 90 "Permutation_length" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 74 "Permutation_map" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 101 "Permutation_nil" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 100 "Permutation_nil_cons" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 99 "Permutation_refl" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 89 "Permutation_rev" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 102 "Permutation_sind" [body=yes, kind=cnst, prop=no, path="Test", ]; + N: 98 "Permutation_sym" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 97 "Permutation_trans" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 169 "app" [body=yes, kind=cnst, prop=no, path="Test", ]; + N: 156 "app_ass" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 154 "app_comm_cons" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 158 "app_cons_not_nil" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 153 "app_eq_nil" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 152 "app_eq_unit" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 151 "app_inj_tail" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 147 "app_inv_head" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 146 "app_inv_tail" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 150 "app_length" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 157 "app_nil_end" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 136 "app_nth1" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 135 "app_nth2" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 130 "app_removelast_last" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 155 "ass_app" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 46 "combine" [body=yes, kind=cnst, prop=no, path="Test", ]; + N: 41 "combine_length" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 40 "combine_nth" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 44 "combine_split" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 127 "count_occ" [body=yes, kind=cnst, prop=no, path="Test", ]; + N: 126 "count_occ_In" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 123 "count_occ_cons_eq" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 122 "count_occ_cons_neq" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 125 "count_occ_inv_nil" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 124 "count_occ_nil" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 167 "destruct_list" [body=yes, kind=cnst, prop=no, path="Test", ]; + N: 120 "distr_rev" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 129 "exists_last" [body=yes, kind=cnst, prop=no, path="Test", ]; + N: 61 "existsb" [body=yes, kind=cnst, prop=no, path="Test", ]; + N: 60 "existsb_exists" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 59 "existsb_nth" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 56 "filter" [body=yes, kind=cnst, prop=no, path="Test", ]; + N: 55 "filter_In" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 54 "find" [body=yes, kind=cnst, prop=no, path="Test", ]; + N: 19 "firstn" [body=yes, kind=cnst, prop=no, path="Test", ]; + N: 16 "firstn_length" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 14 "firstn_removelast" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 17 "firstn_skipn" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 73 "flat_map" [body=yes, kind=cnst, prop=no, path="Test", ]; + N: 69 "fold_left" [body=yes, kind=cnst, prop=no, path="Test", ]; + N: 68 "fold_left_app" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 67 "fold_left_length" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 64 "fold_left_rev_right" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 66 "fold_right" [body=yes, kind=cnst, prop=no, path="Test", ]; + N: 65 "fold_right_app" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 63 "fold_symmetric" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 58 "forallb" [body=yes, kind=cnst, prop=no, path="Test", ]; + N: 57 "forallb_forall" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 175 "hd" [body=yes, kind=cnst, prop=no, path="Test", ]; + N: 176 "head" [body=yes, kind=cnst, prop=no, path="Test", ]; + N: 165 "head_cons" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 166 "head_nil" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 149 "in_app_or" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 43 "in_combine_l" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 42 "in_combine_r" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 163 "in_cons" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 164 "in_eq" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 72 "in_flat_map" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 160 "in_inv" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 80 "in_map" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 79 "in_map_iff" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 162 "in_nil" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 148 "in_or_app" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 37 "in_prod" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 38 "in_prod_aux" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 36 "in_prod_iff" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 51 "in_split_l" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 50 "in_split_r" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 27 "incl" [body=yes, kind=cnst, prop=no, path="Test", ]; + N: 20 "incl_app" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 23 "incl_appl" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 22 "incl_appr" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 21 "incl_cons" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 26 "incl_refl" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 25 "incl_tl" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 24 "incl_tran" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 132 "last" [body=yes, kind=cnst, prop=no, path="Test", ]; + N: 34 "lel" [body=yes, kind=cnst, prop=no, path="Test", ]; + N: 30 "lel_cons" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 31 "lel_cons_cons" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 28 "lel_nil" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 33 "lel_refl" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 29 "lel_tail" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 32 "lel_trans" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 173 "length" [body=yes, kind=cnst, prop=no, path="Test", ]; + N: 82 "list_eq_dec" [body=yes, kind=cnst, prop=no, path="Test", ]; + N: 179 "list_ind" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 62 "list_power" [body=yes, kind=cnst, prop=no, path="Test", ]; + N: 39 "list_prod" [body=yes, kind=cnst, prop=no, path="Test", ]; + N: 178 "list_rec" [body=yes, kind=cnst, prop=no, path="Test", ]; + N: 180 "list_rect" [body=yes, kind=cnst, prop=no, path="Test", ]; + N: 177 "list_sind" [body=yes, kind=cnst, prop=no, path="Test", ]; + N: 81 "map" [body=yes, kind=cnst, prop=no, path="Test", ]; + N: 76 "map_app" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 70 "map_ext" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 78 "map_length" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 71 "map_map" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 77 "map_nth" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 75 "map_rev" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 168 "nil_cons" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 145 "nth" [body=yes, kind=cnst, prop=no, path="Test", ]; + N: 139 "nth_In" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 142 "nth_S_cons" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 140 "nth_default" [body=yes, kind=cnst, prop=no, path="Test", ]; + N: 141 "nth_error" [body=yes, kind=cnst, prop=no, path="Test", ]; + N: 143 "nth_in_or_default" [body=yes, kind=cnst, prop=no, path="Test", ]; + N: 137 "nth_indep" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 144 "nth_ok" [body=yes, kind=cnst, prop=no, path="Test", ]; + N: 138 "nth_overflow" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 53 "partition" [body=yes, kind=cnst, prop=no, path="Test", ]; + N: 35 "prod_length" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 134 "remove" [body=yes, kind=cnst, prop=no, path="Test", ]; + N: 133 "remove_In" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 131 "removelast" [body=yes, kind=cnst, prop=no, path="Test", ]; + N: 128 "removelast_app" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 15 "removelast_firstn" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 121 "rev" [body=yes, kind=cnst, prop=no, path="Test", ]; + N: 113 "rev'" [body=yes, kind=cnst, prop=no, path="Test", ]; + N: 111 "rev_alt" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 114 "rev_append" [body=yes, kind=cnst, prop=no, path="Test", ]; + N: 112 "rev_append_rev" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 109 "rev_ind" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 118 "rev_involutive" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 116 "rev_length" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 110 "rev_list_ind" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 115 "rev_nth" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 119 "rev_unit" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 13 "seq" [body=yes, kind=cnst, prop=no, path="Test", ]; + N: 12 "seq_length" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 11 "seq_nth" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 10 "seq_shift" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 172 "size" [body=no, kind=cnst, prop=no, path="Test", ]; + N: 171 "size_nil" [body=no, kind=cnst, prop=yes, path="Test", ]; + N: 18 "skipn" [body=yes, kind=cnst, prop=no, path="Test", ]; + N: 52 "split" [body=yes, kind=cnst, prop=no, path="Test", ]; + N: 45 "split_combine" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 48 "split_length_l" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 47 "split_length_r" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 49 "split_nth" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 174 "tail" [body=yes, kind=cnst, prop=no, path="Test", ]; + N: 8 "NoDup" [kind=inductive, prop=no, path="Test.ReDun", ]; + N: 108 "Permutation" [kind=inductive, prop=no, path="Test", ]; + N: 183 "list" [kind=inductive, prop=no, path="Test", ]; + N: 7 "NoDup_nil" [kind=construct, prop=yes, path="Test.ReDun", ]; + N: 107 "perm_nil" [kind=construct, prop=yes, path="Test", ]; + N: 182 "nil" [kind=construct, prop=no, path="Test", ]; + N: 6 "NoDup_cons" [kind=construct, prop=yes, path="Test.ReDun", ]; + N: 106 "perm_skip" [kind=construct, prop=yes, path="Test", ]; + N: 181 "cons" [kind=construct, prop=no, path="Test", ]; + N: 105 "perm_swap" [kind=construct, prop=yes, path="Test", ]; + N: 104 "perm_trans" [kind=construct, prop=yes, path="Test", ]; + E: 1 2 [weight=1, ]; + E: 1 3 [weight=1, ]; + E: 1 8 [weight=25, ]; + E: 1 9 [weight=415, ]; + E: 1 91 [weight=1, ]; + E: 1 107 [weight=1, ]; + E: 1 108 [weight=16, ]; + E: 1 148 [weight=2, ]; + E: 1 149 [weight=2, ]; + E: 1 161 [weight=1, ]; + E: 1 169 [weight=39, ]; + E: 1 170 [weight=129, ]; + E: 1 179 [weight=1, ]; + E: 1 181 [weight=82, ]; + E: 1 182 [weight=20, ]; + E: 1 183 [weight=66, ]; + E: 2 8 [weight=19, ]; + E: 2 9 [weight=256, ]; + E: 2 148 [weight=1, ]; + E: 2 169 [weight=43, ]; + E: 2 170 [weight=33, ]; + E: 2 179 [weight=1, ]; + E: 2 181 [weight=66, ]; + E: 2 182 [weight=8, ]; + E: 2 183 [weight=64, ]; + E: 3 6 [weight=1, ]; + E: 3 8 [weight=32, ]; + E: 3 9 [weight=230, ]; + E: 3 148 [weight=1, ]; + E: 3 149 [weight=1, ]; + E: 3 169 [weight=37, ]; + E: 3 170 [weight=27, ]; + E: 3 179 [weight=1, ]; + E: 3 181 [weight=67, ]; + E: 3 182 [weight=8, ]; + E: 3 183 [weight=61, ]; + E: 4 8 [weight=6, ]; + E: 4 9 [weight=15, ]; + E: 4 170 [weight=2, ]; + E: 4 181 [weight=2, ]; + E: 4 182 [weight=2, ]; + E: 4 183 [weight=7, ]; + E: 5 8 [weight=6, ]; + E: 5 9 [weight=15, ]; + E: 5 170 [weight=2, ]; + E: 5 181 [weight=2, ]; + E: 5 182 [weight=2, ]; + E: 5 183 [weight=7, ]; + E: 6 9 [weight=5, ]; + E: 6 170 [weight=1, ]; + E: 6 181 [weight=1, ]; + E: 6 182 [weight=1, ]; + E: 6 183 [weight=1, ]; + E: 7 9 [weight=5, ]; + E: 7 170 [weight=1, ]; + E: 7 181 [weight=1, ]; + E: 7 182 [weight=1, ]; + E: 7 183 [weight=1, ]; + E: 8 9 [weight=5, ]; + E: 8 170 [weight=1, ]; + E: 8 181 [weight=1, ]; + E: 8 182 [weight=1, ]; + E: 8 183 [weight=1, ]; + E: 10 13 [weight=14, ]; + E: 10 81 [weight=6, ]; + E: 10 181 [weight=3, ]; + E: 10 182 [weight=1, ]; + E: 10 183 [weight=10, ]; + E: 11 13 [weight=12, ]; + E: 11 145 [weight=12, ]; + E: 11 181 [weight=3, ]; + E: 12 13 [weight=6, ]; + E: 12 173 [weight=6, ]; + E: 13 181 [weight=1, ]; + E: 13 182 [weight=1, ]; + E: 13 183 [weight=3, ]; + E: 14 19 [weight=30, ]; + E: 14 128 [weight=1, ]; + E: 14 131 [weight=17, ]; + E: 14 169 [weight=3, ]; + E: 14 173 [weight=26, ]; + E: 14 181 [weight=17, ]; + E: 14 182 [weight=27, ]; + E: 14 183 [weight=40, ]; + E: 15 19 [weight=30, ]; + E: 15 128 [weight=1, ]; + E: 15 131 [weight=11, ]; + E: 15 169 [weight=3, ]; + E: 15 173 [weight=18, ]; + E: 15 181 [weight=16, ]; + E: 15 182 [weight=37, ]; + E: 15 183 [weight=45, ]; + E: 16 19 [weight=10, ]; + E: 16 173 [weight=20, ]; + E: 16 181 [weight=4, ]; + E: 16 182 [weight=4, ]; + E: 16 183 [weight=9, ]; + E: 17 18 [weight=13, ]; + E: 17 19 [weight=13, ]; + E: 17 169 [weight=13, ]; + E: 17 181 [weight=10, ]; + E: 17 182 [weight=4, ]; + E: 17 183 [weight=29, ]; + E: 18 182 [weight=1, ]; + E: 18 183 [weight=8, ]; + E: 19 181 [weight=1, ]; + E: 19 182 [weight=2, ]; + E: 19 183 [weight=8, ]; + E: 20 27 [weight=6, ]; + E: 20 149 [weight=1, ]; + E: 20 169 [weight=4, ]; + E: 20 170 [weight=16, ]; + E: 20 183 [weight=12, ]; + E: 21 27 [weight=4, ]; + E: 21 170 [weight=18, ]; + E: 21 181 [weight=3, ]; + E: 21 183 [weight=8, ]; + E: 22 27 [weight=4, ]; + E: 22 148 [weight=1, ]; + E: 22 169 [weight=2, ]; + E: 22 170 [weight=3, ]; + E: 22 183 [weight=6, ]; + E: 23 27 [weight=4, ]; + E: 23 148 [weight=1, ]; + E: 23 169 [weight=2, ]; + E: 23 170 [weight=3, ]; + E: 23 183 [weight=6, ]; + E: 24 27 [weight=6, ]; + E: 24 170 [weight=1, ]; + E: 24 183 [weight=6, ]; + E: 25 27 [weight=4, ]; + E: 25 163 [weight=1, ]; + E: 25 170 [weight=1, ]; + E: 25 181 [weight=2, ]; + E: 25 183 [weight=4, ]; + E: 26 27 [weight=2, ]; + E: 26 170 [weight=1, ]; + E: 26 183 [weight=2, ]; + E: 27 170 [weight=2, ]; + E: 27 183 [weight=4, ]; + E: 28 34 [weight=5, ]; + E: 28 173 [weight=1, ]; + E: 28 179 [weight=1, ]; + E: 28 181 [weight=2, ]; + E: 28 182 [weight=11, ]; + E: 28 183 [weight=9, ]; + E: 29 34 [weight=4, ]; + E: 29 173 [weight=8, ]; + E: 29 181 [weight=6, ]; + E: 29 183 [weight=4, ]; + E: 30 34 [weight=4, ]; + E: 30 173 [weight=8, ]; + E: 30 181 [weight=3, ]; + E: 30 183 [weight=4, ]; + E: 31 34 [weight=4, ]; + E: 31 173 [weight=14, ]; + E: 31 181 [weight=6, ]; + E: 31 183 [weight=4, ]; + E: 32 34 [weight=6, ]; + E: 32 173 [weight=7, ]; + E: 32 183 [weight=6, ]; + E: 33 34 [weight=2, ]; + E: 33 173 [weight=1, ]; + E: 33 183 [weight=2, ]; + E: 34 173 [weight=2, ]; + E: 34 183 [weight=4, ]; + E: 35 39 [weight=10, ]; + E: 35 78 [weight=1, ]; + E: 35 81 [weight=4, ]; + E: 35 150 [weight=1, ]; + E: 35 169 [weight=1, ]; + E: 35 173 [weight=31, ]; + E: 35 179 [weight=1, ]; + E: 35 181 [weight=2, ]; + E: 35 182 [weight=2, ]; + E: 35 183 [weight=11, ]; + E: 36 37 [weight=1, ]; + E: 36 39 [weight=12, ]; + E: 36 79 [weight=1, ]; + E: 36 81 [weight=11, ]; + E: 36 149 [weight=1, ]; + E: 36 169 [weight=1, ]; + E: 36 170 [weight=87, ]; + E: 36 179 [weight=1, ]; + E: 36 181 [weight=2, ]; + E: 36 182 [weight=2, ]; + E: 36 183 [weight=6, ]; + E: 37 38 [weight=1, ]; + E: 37 39 [weight=9, ]; + E: 37 81 [weight=5, ]; + E: 37 148 [weight=1, ]; + E: 37 170 [weight=27, ]; + E: 37 179 [weight=1, ]; + E: 37 181 [weight=2, ]; + E: 37 182 [weight=2, ]; + E: 37 183 [weight=11, ]; + E: 38 81 [weight=8, ]; + E: 38 170 [weight=16, ]; + E: 38 179 [weight=1, ]; + E: 38 181 [weight=2, ]; + E: 38 182 [weight=2, ]; + E: 38 183 [weight=4, ]; + E: 39 81 [weight=1, ]; + E: 39 169 [weight=1, ]; + E: 39 182 [weight=1, ]; + E: 39 183 [weight=10, ]; + E: 40 46 [weight=13, ]; + E: 40 145 [weight=39, ]; + E: 40 173 [weight=24, ]; + E: 40 179 [weight=1, ]; + E: 40 181 [weight=25, ]; + E: 40 182 [weight=25, ]; + E: 40 183 [weight=13, ]; + E: 41 46 [weight=8, ]; + E: 41 173 [weight=24, ]; + E: 41 179 [weight=1, ]; + E: 41 181 [weight=8, ]; + E: 41 182 [weight=4, ]; + E: 41 183 [weight=12, ]; + E: 42 46 [weight=10, ]; + E: 42 170 [weight=21, ]; + E: 42 179 [weight=1, ]; + E: 42 181 [weight=5, ]; + E: 42 182 [weight=3, ]; + E: 42 183 [weight=12, ]; + E: 43 46 [weight=10, ]; + E: 43 170 [weight=21, ]; + E: 43 179 [weight=1, ]; + E: 43 181 [weight=7, ]; + E: 43 182 [weight=3, ]; + E: 43 183 [weight=12, ]; + E: 44 46 [weight=10, ]; + E: 44 52 [weight=10, ]; + E: 44 173 [weight=30, ]; + E: 44 179 [weight=1, ]; + E: 44 181 [weight=23, ]; + E: 44 182 [weight=23, ]; + E: 44 183 [weight=88, ]; + E: 45 46 [weight=16, ]; + E: 45 52 [weight=7, ]; + E: 45 179 [weight=1, ]; + E: 45 181 [weight=17, ]; + E: 45 182 [weight=3, ]; + E: 45 183 [weight=55, ]; + E: 46 181 [weight=1, ]; + E: 46 182 [weight=2, ]; + E: 46 183 [weight=12, ]; + E: 47 52 [weight=7, ]; + E: 47 173 [weight=22, ]; + E: 47 179 [weight=1, ]; + E: 47 181 [weight=8, ]; + E: 47 182 [weight=2, ]; + E: 47 183 [weight=48, ]; + E: 48 52 [weight=7, ]; + E: 48 173 [weight=22, ]; + E: 48 179 [weight=1, ]; + E: 48 181 [weight=8, ]; + E: 48 182 [weight=2, ]; + E: 48 183 [weight=48, ]; + E: 49 52 [weight=32, ]; + E: 49 145 [weight=66, ]; + E: 49 179 [weight=1, ]; + E: 49 181 [weight=39, ]; + E: 49 182 [weight=15, ]; + E: 49 183 [weight=180, ]; + E: 50 52 [weight=8, ]; + E: 50 170 [weight=28, ]; + E: 50 179 [weight=1, ]; + E: 50 181 [weight=10, ]; + E: 50 182 [weight=2, ]; + E: 50 183 [weight=58, ]; + E: 51 52 [weight=8, ]; + E: 51 170 [weight=28, ]; + E: 51 179 [weight=1, ]; + E: 51 181 [weight=10, ]; + E: 51 182 [weight=2, ]; + E: 51 183 [weight=58, ]; + E: 52 181 [weight=2, ]; + E: 52 182 [weight=2, ]; + E: 52 183 [weight=20, ]; + E: 53 181 [weight=2, ]; + E: 53 182 [weight=2, ]; + E: 53 183 [weight=22, ]; + E: 54 183 [weight=4, ]; + E: 55 56 [weight=49, ]; + E: 55 170 [weight=107, ]; + E: 55 179 [weight=1, ]; + E: 55 181 [weight=5, ]; + E: 55 182 [weight=2, ]; + E: 55 183 [weight=6, ]; + E: 56 181 [weight=1, ]; + E: 56 182 [weight=1, ]; + E: 56 183 [weight=8, ]; + E: 57 58 [weight=25, ]; + E: 57 170 [weight=19, ]; + E: 57 179 [weight=1, ]; + E: 57 181 [weight=2, ]; + E: 57 182 [weight=2, ]; + E: 57 183 [weight=4, ]; + E: 58 183 [weight=4, ]; + E: 59 61 [weight=13, ]; + E: 59 145 [weight=11, ]; + E: 59 173 [weight=24, ]; + E: 59 179 [weight=1, ]; + E: 59 181 [weight=3, ]; + E: 59 182 [weight=19, ]; + E: 59 183 [weight=4, ]; + E: 60 61 [weight=37, ]; + E: 60 170 [weight=55, ]; + E: 60 179 [weight=1, ]; + E: 60 181 [weight=2, ]; + E: 60 182 [weight=2, ]; + E: 60 183 [weight=4, ]; + E: 61 183 [weight=4, ]; + E: 62 73 [weight=1, ]; + E: 62 81 [weight=1, ]; + E: 62 181 [weight=2, ]; + E: 62 182 [weight=2, ]; + E: 62 183 [weight=19, ]; + E: 63 66 [weight=18, ]; + E: 63 69 [weight=13, ]; + E: 63 179 [weight=1, ]; + E: 63 181 [weight=4, ]; + E: 63 182 [weight=3, ]; + E: 63 183 [weight=6, ]; + E: 64 65 [weight=1, ]; + E: 64 66 [weight=10, ]; + E: 64 69 [weight=7, ]; + E: 64 121 [weight=9, ]; + E: 64 169 [weight=1, ]; + E: 64 179 [weight=1, ]; + E: 64 181 [weight=6, ]; + E: 64 182 [weight=6, ]; + E: 64 183 [weight=4, ]; + E: 65 66 [weight=30, ]; + E: 65 169 [weight=11, ]; + E: 65 179 [weight=1, ]; + E: 65 181 [weight=2, ]; + E: 65 182 [weight=2, ]; + E: 65 183 [weight=11, ]; + E: 66 183 [weight=4, ]; + E: 67 69 [weight=8, ]; + E: 67 173 [weight=12, ]; + E: 67 179 [weight=1, ]; + E: 67 181 [weight=2, ]; + E: 67 182 [weight=2, ]; + E: 67 183 [weight=7, ]; + E: 68 69 [weight=16, ]; + E: 68 169 [weight=5, ]; + E: 68 179 [weight=1, ]; + E: 68 181 [weight=2, ]; + E: 68 182 [weight=2, ]; + E: 68 183 [weight=10, ]; + E: 69 183 [weight=4, ]; + E: 70 81 [weight=16, ]; + E: 70 179 [weight=1, ]; + E: 70 181 [weight=7, ]; + E: 70 182 [weight=3, ]; + E: 70 183 [weight=15, ]; + E: 71 81 [weight=20, ]; + E: 71 179 [weight=1, ]; + E: 71 181 [weight=5, ]; + E: 71 182 [weight=3, ]; + E: 71 183 [weight=14, ]; + E: 72 73 [weight=32, ]; + E: 72 148 [weight=1, ]; + E: 72 149 [weight=1, ]; + E: 72 169 [weight=3, ]; + E: 72 170 [weight=129, ]; + E: 72 179 [weight=1, ]; + E: 72 181 [weight=2, ]; + E: 72 182 [weight=2, ]; + E: 72 183 [weight=6, ]; + E: 73 169 [weight=1, ]; + E: 73 182 [weight=1, ]; + E: 73 183 [weight=10, ]; + E: 74 81 [weight=24, ]; + E: 74 103 [weight=1, ]; + E: 74 104 [weight=1, ]; + E: 74 105 [weight=1, ]; + E: 74 106 [weight=1, ]; + E: 74 107 [weight=1, ]; + E: 74 108 [weight=14, ]; + E: 74 181 [weight=6, ]; + E: 74 182 [weight=2, ]; + E: 74 183 [weight=12, ]; + E: 75 76 [weight=1, ]; + E: 75 81 [weight=19, ]; + E: 75 121 [weight=18, ]; + E: 75 169 [weight=6, ]; + E: 75 179 [weight=1, ]; + E: 75 181 [weight=9, ]; + E: 75 182 [weight=10, ]; + E: 75 183 [weight=17, ]; + E: 76 81 [weight=23, ]; + E: 76 169 [weight=14, ]; + E: 76 179 [weight=1, ]; + E: 76 181 [weight=5, ]; + E: 76 182 [weight=2, ]; + E: 76 183 [weight=21, ]; + E: 77 81 [weight=8, ]; + E: 77 145 [weight=21, ]; + E: 77 179 [weight=1, ]; + E: 77 181 [weight=5, ]; + E: 77 182 [weight=6, ]; + E: 77 183 [weight=4, ]; + E: 78 81 [weight=6, ]; + E: 78 173 [weight=12, ]; + E: 78 179 [weight=1, ]; + E: 78 181 [weight=2, ]; + E: 78 182 [weight=2, ]; + E: 78 183 [weight=4, ]; + E: 79 81 [weight=50, ]; + E: 79 170 [weight=125, ]; + E: 79 179 [weight=1, ]; + E: 79 181 [weight=21, ]; + E: 79 182 [weight=13, ]; + E: 79 183 [weight=4, ]; + E: 80 81 [weight=8, ]; + E: 80 170 [weight=16, ]; + E: 80 179 [weight=1, ]; + E: 80 181 [weight=2, ]; + E: 80 182 [weight=2, ]; + E: 80 183 [weight=4, ]; + E: 81 181 [weight=1, ]; + E: 81 182 [weight=1, ]; + E: 81 183 [weight=7, ]; + E: 82 168 [weight=2, ]; + E: 82 180 [weight=1, ]; + E: 82 181 [weight=70, ]; + E: 82 182 [weight=14, ]; + E: 82 183 [weight=102, ]; + E: 83 87 [weight=1, ]; + E: 83 108 [weight=12, ]; + E: 83 157 [weight=2, ]; + E: 83 169 [weight=11, ]; + E: 83 179 [weight=1, ]; + E: 83 181 [weight=2, ]; + E: 83 182 [weight=3, ]; + E: 83 183 [weight=18, ]; + E: 84 86 [weight=1, ]; + E: 84 108 [weight=12, ]; + E: 84 169 [weight=14, ]; + E: 84 179 [weight=1, ]; + E: 84 181 [weight=4, ]; + E: 84 182 [weight=2, ]; + E: 84 183 [weight=18, ]; + E: 85 87 [weight=1, ]; + E: 85 108 [weight=3, ]; + E: 85 169 [weight=3, ]; + E: 85 181 [weight=4, ]; + E: 85 182 [weight=1, ]; + E: 85 183 [weight=6, ]; + E: 86 87 [weight=1, ]; + E: 86 108 [weight=3, ]; + E: 86 181 [weight=4, ]; + E: 86 182 [weight=2, ]; + E: 86 183 [weight=4, ]; + E: 87 88 [weight=1, ]; + E: 87 91 [weight=6, ]; + E: 87 96 [weight=1, ]; + E: 87 98 [weight=23, ]; + E: 87 99 [weight=6, ]; + E: 87 104 [weight=10, ]; + E: 87 105 [weight=3, ]; + E: 87 106 [weight=15, ]; + E: 87 108 [weight=191, ]; + E: 87 148 [weight=1, ]; + E: 87 161 [weight=1, ]; + E: 87 169 [weight=631, ]; + E: 87 170 [weight=4, ]; + E: 87 181 [weight=975, ]; + E: 87 182 [weight=35, ]; + E: 87 183 [weight=814, ]; + E: 88 99 [weight=6, ]; + E: 88 103 [weight=1, ]; + E: 88 105 [weight=1, ]; + E: 88 108 [weight=13, ]; + E: 88 179 [weight=2, ]; + E: 88 181 [weight=23, ]; + E: 88 182 [weight=4, ]; + E: 88 183 [weight=34, ]; + E: 89 92 [weight=1, ]; + E: 89 97 [weight=1, ]; + E: 89 98 [weight=2, ]; + E: 89 99 [weight=1, ]; + E: 89 106 [weight=1, ]; + E: 89 108 [weight=6, ]; + E: 89 121 [weight=12, ]; + E: 89 169 [weight=3, ]; + E: 89 179 [weight=1, ]; + E: 89 181 [weight=12, ]; + E: 89 182 [weight=7, ]; + E: 89 183 [weight=4, ]; + E: 90 103 [weight=1, ]; + E: 90 108 [weight=5, ]; + E: 90 173 [weight=24, ]; + E: 90 181 [weight=6, ]; + E: 90 182 [weight=2, ]; + E: 90 183 [weight=12, ]; + E: 91 99 [weight=1, ]; + E: 91 104 [weight=2, ]; + E: 91 105 [weight=1, ]; + E: 91 106 [weight=3, ]; + E: 91 108 [weight=12, ]; + E: 91 169 [weight=22, ]; + E: 91 179 [weight=1, ]; + E: 91 181 [weight=27, ]; + E: 91 182 [weight=2, ]; + E: 91 183 [weight=19, ]; + E: 92 97 [weight=3, ]; + E: 92 98 [weight=3, ]; + E: 92 99 [weight=2, ]; + E: 92 105 [weight=1, ]; + E: 92 106 [weight=3, ]; + E: 92 108 [weight=11, ]; + E: 92 154 [weight=1, ]; + E: 92 157 [weight=2, ]; + E: 92 169 [weight=43, ]; + E: 92 179 [weight=2, ]; + E: 92 181 [weight=42, ]; + E: 92 182 [weight=6, ]; + E: 92 183 [weight=18, ]; + E: 93 94 [weight=1, ]; + E: 93 95 [weight=1, ]; + E: 93 97 [weight=2, ]; + E: 93 98 [weight=2, ]; + E: 93 103 [weight=1, ]; + E: 93 105 [weight=1, ]; + E: 93 106 [weight=1, ]; + E: 93 108 [weight=22, ]; + E: 93 154 [weight=10, ]; + E: 93 169 [weight=53, ]; + E: 93 181 [weight=66, ]; + E: 93 183 [weight=36, ]; + E: 94 106 [weight=1, ]; + E: 94 108 [weight=7, ]; + E: 94 154 [weight=2, ]; + E: 94 169 [weight=14, ]; + E: 94 179 [weight=1, ]; + E: 94 181 [weight=6, ]; + E: 94 183 [weight=12, ]; + E: 95 97 [weight=1, ]; + E: 95 98 [weight=2, ]; + E: 95 99 [weight=1, ]; + E: 95 103 [weight=1, ]; + E: 95 105 [weight=1, ]; + E: 95 106 [weight=1, ]; + E: 95 108 [weight=14, ]; + E: 95 169 [weight=28, ]; + E: 95 181 [weight=10, ]; + E: 95 182 [weight=2, ]; + E: 95 183 [weight=14, ]; + E: 96 103 [weight=1, ]; + E: 96 108 [weight=5, ]; + E: 96 170 [weight=40, ]; + E: 96 181 [weight=6, ]; + E: 96 182 [weight=2, ]; + E: 96 183 [weight=12, ]; + E: 97 104 [weight=1, ]; + E: 97 108 [weight=3, ]; + E: 97 183 [weight=3, ]; + E: 98 103 [weight=1, ]; + E: 98 104 [weight=1, ]; + E: 98 105 [weight=1, ]; + E: 98 106 [weight=1, ]; + E: 98 107 [weight=1, ]; + E: 98 108 [weight=10, ]; + E: 98 183 [weight=12, ]; + E: 99 106 [weight=1, ]; + E: 99 107 [weight=1, ]; + E: 99 108 [weight=3, ]; + E: 99 179 [weight=1, ]; + E: 99 183 [weight=4, ]; + E: 100 101 [weight=1, ]; + E: 100 108 [weight=3, ]; + E: 100 168 [weight=1, ]; + E: 100 181 [weight=5, ]; + E: 100 182 [weight=4, ]; + E: 100 183 [weight=4, ]; + E: 101 103 [weight=1, ]; + E: 101 108 [weight=5, ]; + E: 101 168 [weight=2, ]; + E: 101 181 [weight=10, ]; + E: 101 182 [weight=23, ]; + E: 101 183 [weight=30, ]; + E: 102 108 [weight=10, ]; + E: 102 181 [weight=12, ]; + E: 102 182 [weight=4, ]; + E: 102 183 [weight=22, ]; + E: 103 108 [weight=10, ]; + E: 103 181 [weight=12, ]; + E: 103 182 [weight=4, ]; + E: 103 183 [weight=22, ]; + E: 104 181 [weight=6, ]; + E: 104 182 [weight=2, ]; + E: 104 183 [weight=6, ]; + E: 105 181 [weight=6, ]; + E: 105 182 [weight=2, ]; + E: 105 183 [weight=6, ]; + E: 106 181 [weight=6, ]; + E: 106 182 [weight=2, ]; + E: 106 183 [weight=6, ]; + E: 107 181 [weight=6, ]; + E: 107 182 [weight=2, ]; + E: 107 183 [weight=6, ]; + E: 108 181 [weight=6, ]; + E: 108 182 [weight=2, ]; + E: 108 183 [weight=6, ]; + E: 109 110 [weight=1, ]; + E: 109 118 [weight=1, ]; + E: 109 121 [weight=9, ]; + E: 109 169 [weight=2, ]; + E: 109 181 [weight=3, ]; + E: 109 182 [weight=4, ]; + E: 109 183 [weight=11, ]; + E: 110 121 [weight=7, ]; + E: 110 179 [weight=1, ]; + E: 110 181 [weight=2, ]; + E: 110 182 [weight=2, ]; + E: 110 183 [weight=8, ]; + E: 111 112 [weight=1, ]; + E: 111 114 [weight=2, ]; + E: 111 121 [weight=4, ]; + E: 111 157 [weight=1, ]; + E: 111 169 [weight=1, ]; + E: 111 182 [weight=4, ]; + E: 111 183 [weight=6, ]; + E: 112 114 [weight=7, ]; + E: 112 121 [weight=9, ]; + E: 112 155 [weight=1, ]; + E: 112 169 [weight=10, ]; + E: 112 179 [weight=1, ]; + E: 112 181 [weight=9, ]; + E: 112 182 [weight=5, ]; + E: 112 183 [weight=21, ]; + E: 113 114 [weight=1, ]; + E: 113 182 [weight=1, ]; + E: 113 183 [weight=3, ]; + E: 114 181 [weight=1, ]; + E: 114 183 [weight=10, ]; + E: 115 116 [weight=2, ]; + E: 115 121 [weight=36, ]; + E: 115 135 [weight=1, ]; + E: 115 136 [weight=1, ]; + E: 115 145 [weight=43, ]; + E: 115 169 [weight=10, ]; + E: 115 173 [weight=78, ]; + E: 115 179 [weight=1, ]; + E: 115 181 [weight=30, ]; + E: 115 182 [weight=37, ]; + E: 115 183 [weight=4, ]; + E: 116 121 [weight=9, ]; + E: 116 150 [weight=1, ]; + E: 116 169 [weight=1, ]; + E: 116 173 [weight=22, ]; + E: 116 179 [weight=1, ]; + E: 116 181 [weight=7, ]; + E: 116 182 [weight=7, ]; + E: 116 183 [weight=4, ]; + E: 117 121 [weight=30, ]; + E: 117 148 [weight=2, ]; + E: 117 149 [weight=1, ]; + E: 117 169 [weight=5, ]; + E: 117 170 [weight=62, ]; + E: 117 179 [weight=1, ]; + E: 117 181 [weight=16, ]; + E: 117 182 [weight=18, ]; + E: 117 183 [weight=4, ]; + E: 118 119 [weight=1, ]; + E: 118 121 [weight=17, ]; + E: 118 169 [weight=1, ]; + E: 118 179 [weight=1, ]; + E: 118 181 [weight=8, ]; + E: 118 182 [weight=4, ]; + E: 118 183 [weight=17, ]; + E: 119 120 [weight=1, ]; + E: 119 121 [weight=2, ]; + E: 119 169 [weight=1, ]; + E: 119 181 [weight=3, ]; + E: 119 182 [weight=2, ]; + E: 119 183 [weight=3, ]; + E: 120 121 [weight=29, ]; + E: 120 156 [weight=1, ]; + E: 120 157 [weight=1, ]; + E: 120 169 [weight=20, ]; + E: 120 179 [weight=1, ]; + E: 120 181 [weight=8, ]; + E: 120 182 [weight=13, ]; + E: 120 183 [weight=22, ]; + E: 121 169 [weight=1, ]; + E: 121 181 [weight=1, ]; + E: 121 182 [weight=2, ]; + E: 121 183 [weight=7, ]; + E: 122 127 [weight=10, ]; + E: 122 181 [weight=2, ]; + E: 122 183 [weight=2, ]; + E: 123 127 [weight=10, ]; + E: 123 181 [weight=2, ]; + E: 123 183 [weight=2, ]; + E: 124 127 [weight=2, ]; + E: 124 182 [weight=2, ]; + E: 125 127 [weight=19, ]; + E: 125 179 [weight=1, ]; + E: 125 181 [weight=3, ]; + E: 125 182 [weight=11, ]; + E: 125 183 [weight=14, ]; + E: 126 127 [weight=29, ]; + E: 126 170 [weight=27, ]; + E: 126 179 [weight=1, ]; + E: 126 181 [weight=2, ]; + E: 126 182 [weight=2, ]; + E: 126 183 [weight=4, ]; + E: 127 183 [weight=4, ]; + E: 128 131 [weight=38, ]; + E: 128 169 [weight=35, ]; + E: 128 179 [weight=1, ]; + E: 128 181 [weight=26, ]; + E: 128 182 [weight=30, ]; + E: 128 183 [weight=71, ]; + E: 129 169 [weight=25, ]; + E: 129 180 [weight=1, ]; + E: 129 181 [weight=50, ]; + E: 129 182 [weight=46, ]; + E: 129 183 [weight=75, ]; + E: 130 131 [weight=13, ]; + E: 130 132 [weight=13, ]; + E: 130 169 [weight=13, ]; + E: 130 179 [weight=1, ]; + E: 130 181 [weight=44, ]; + E: 130 182 [weight=35, ]; + E: 130 183 [weight=34, ]; + E: 131 181 [weight=1, ]; + E: 131 182 [weight=2, ]; + E: 131 183 [weight=9, ]; + E: 132 183 [weight=5, ]; + E: 133 134 [weight=12, ]; + E: 133 170 [weight=11, ]; + E: 133 179 [weight=1, ]; + E: 133 181 [weight=4, ]; + E: 133 182 [weight=2, ]; + E: 133 183 [weight=5, ]; + E: 134 181 [weight=1, ]; + E: 134 182 [weight=1, ]; + E: 134 183 [weight=8, ]; + E: 135 145 [weight=26, ]; + E: 135 169 [weight=8, ]; + E: 135 173 [weight=30, ]; + E: 135 179 [weight=1, ]; + E: 135 181 [weight=9, ]; + E: 135 182 [weight=6, ]; + E: 135 183 [weight=9, ]; + E: 136 145 [weight=24, ]; + E: 136 169 [weight=11, ]; + E: 136 173 [weight=24, ]; + E: 136 179 [weight=1, ]; + E: 136 181 [weight=9, ]; + E: 136 182 [weight=19, ]; + E: 136 183 [weight=9, ]; + E: 137 145 [weight=14, ]; + E: 137 173 [weight=13, ]; + E: 137 179 [weight=1, ]; + E: 137 181 [weight=3, ]; + E: 137 182 [weight=3, ]; + E: 137 183 [weight=4, ]; + E: 138 145 [weight=9, ]; + E: 138 173 [weight=18, ]; + E: 138 179 [weight=1, ]; + E: 138 181 [weight=6, ]; + E: 138 182 [weight=6, ]; + E: 138 183 [weight=4, ]; + E: 139 145 [weight=14, ]; + E: 139 170 [weight=14, ]; + E: 139 173 [weight=19, ]; + E: 139 181 [weight=6, ]; + E: 139 182 [weight=6, ]; + E: 139 183 [weight=12, ]; + E: 140 141 [weight=1, ]; + E: 140 183 [weight=2, ]; + E: 141 183 [weight=5, ]; + E: 142 145 [weight=7, ]; + E: 142 170 [weight=6, ]; + E: 142 181 [weight=4, ]; + E: 142 183 [weight=3, ]; + E: 143 145 [weight=32, ]; + E: 143 170 [weight=16, ]; + E: 143 178 [weight=1, ]; + E: 143 181 [weight=9, ]; + E: 143 182 [weight=4, ]; + E: 143 183 [weight=4, ]; + E: 144 183 [weight=5, ]; + E: 145 183 [weight=5, ]; + E: 146 150 [weight=2, ]; + E: 146 169 [weight=36, ]; + E: 146 173 [weight=46, ]; + E: 146 179 [weight=1, ]; + E: 146 181 [weight=38, ]; + E: 146 182 [weight=13, ]; + E: 146 183 [weight=97, ]; + E: 147 169 [weight=18, ]; + E: 147 179 [weight=1, ]; + E: 147 181 [weight=7, ]; + E: 147 182 [weight=2, ]; + E: 147 183 [weight=44, ]; + E: 148 169 [weight=11, ]; + E: 148 170 [weight=40, ]; + E: 148 179 [weight=1, ]; + E: 148 181 [weight=2, ]; + E: 148 182 [weight=2, ]; + E: 148 183 [weight=7, ]; + E: 149 169 [weight=9, ]; + E: 149 170 [weight=39, ]; + E: 149 179 [weight=1, ]; + E: 149 181 [weight=2, ]; + E: 149 182 [weight=2, ]; + E: 149 183 [weight=7, ]; + E: 150 169 [weight=6, ]; + E: 150 173 [weight=19, ]; + E: 150 179 [weight=1, ]; + E: 150 181 [weight=2, ]; + E: 150 182 [weight=2, ]; + E: 150 183 [weight=11, ]; + E: 151 158 [weight=2, ]; + E: 151 169 [weight=41, ]; + E: 151 179 [weight=1, ]; + E: 151 181 [weight=88, ]; + E: 151 182 [weight=78, ]; + E: 151 183 [weight=99, ]; + E: 152 157 [weight=1, ]; + E: 152 158 [weight=1, ]; + E: 152 169 [weight=19, ]; + E: 152 181 [weight=87, ]; + E: 152 182 [weight=107, ]; + E: 152 183 [weight=107, ]; + E: 153 169 [weight=12, ]; + E: 153 181 [weight=21, ]; + E: 153 182 [weight=56, ]; + E: 153 183 [weight=55, ]; + E: 154 169 [weight=3, ]; + E: 154 181 [weight=3, ]; + E: 154 183 [weight=6, ]; + E: 155 156 [weight=1, ]; + E: 155 169 [weight=8, ]; + E: 155 183 [weight=8, ]; + E: 156 169 [weight=29, ]; + E: 156 179 [weight=1, ]; + E: 156 181 [weight=5, ]; + E: 156 182 [weight=2, ]; + E: 156 183 [weight=18, ]; + E: 157 169 [weight=6, ]; + E: 157 179 [weight=1, ]; + E: 157 181 [weight=5, ]; + E: 157 182 [weight=9, ]; + E: 157 183 [weight=14, ]; + E: 158 169 [weight=7, ]; + E: 158 181 [weight=12, ]; + E: 158 182 [weight=10, ]; + E: 158 183 [weight=25, ]; + E: 159 162 [weight=1, ]; + E: 159 170 [weight=36, ]; + E: 159 178 [weight=1, ]; + E: 159 181 [weight=6, ]; + E: 159 182 [weight=2, ]; + E: 159 183 [weight=4, ]; + E: 160 170 [weight=10, ]; + E: 160 181 [weight=2, ]; + E: 160 183 [weight=2, ]; + E: 161 169 [weight=25, ]; + E: 161 170 [weight=8, ]; + E: 161 179 [weight=1, ]; + E: 161 181 [weight=46, ]; + E: 161 182 [weight=6, ]; + E: 161 183 [weight=103, ]; + E: 162 170 [weight=3, ]; + E: 162 182 [weight=3, ]; + E: 163 170 [weight=6, ]; + E: 163 181 [weight=2, ]; + E: 163 183 [weight=3, ]; + E: 164 170 [weight=3, ]; + E: 164 181 [weight=2, ]; + E: 164 183 [weight=3, ]; + E: 165 176 [weight=2, ]; + E: 165 181 [weight=2, ]; + E: 165 183 [weight=2, ]; + E: 166 176 [weight=2, ]; + E: 166 182 [weight=2, ]; + E: 167 180 [weight=1, ]; + E: 167 181 [weight=12, ]; + E: 167 182 [weight=8, ]; + E: 167 183 [weight=32, ]; + E: 168 181 [weight=4, ]; + E: 168 182 [weight=4, ]; + E: 168 183 [weight=8, ]; + E: 169 181 [weight=1, ]; + E: 169 183 [weight=10, ]; + E: 170 183 [weight=4, ]; + E: 171 172 [weight=1, ]; + E: 171 182 [weight=1, ]; + E: 172 183 [weight=1, ]; + E: 173 183 [weight=4, ]; + E: 174 182 [weight=1, ]; + E: 174 183 [weight=5, ]; + E: 175 183 [weight=3, ]; + E: 176 183 [weight=3, ]; + E: 177 181 [weight=2, ]; + E: 177 182 [weight=2, ]; + E: 177 183 [weight=8, ]; + E: 178 180 [weight=1, ]; + E: 178 181 [weight=1, ]; + E: 178 182 [weight=1, ]; + E: 178 183 [weight=4, ]; + E: 179 181 [weight=2, ]; + E: 179 182 [weight=2, ]; + E: 179 183 [weight=8, ]; + E: 180 181 [weight=2, ]; + E: 180 182 [weight=2, ]; + E: 180 183 [weight=8, ]; + + $ dpd2dot graph.dpd + Info: read file graph.dpd + Info: Graph output in graph.dot + + $ cat graph.dot + digraph escaped_graph { + graph [ratio=0.5] + node [style=filled] + Test_removelast_app [label="removelast_app", URL=, fillcolor="#7FFFD4"] ; + Test_exists_last [label="exists_last", URL=, peripheries=3, fillcolor="#F070D1"] ; + Test_ReDun_NoDup_Permutation [label="NoDup_Permutation", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_app_removelast_last [label="app_removelast_last", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_ReDun_NoDup_remove_2 [label="NoDup_remove_2", URL=, fillcolor="#7FFFD4"] ; + Test_removelast [label="removelast", URL=, fillcolor="#F070D1"] ; + Test_ReDun_NoDup_remove_1 [label="NoDup_remove_1", URL=, fillcolor="#7FFFD4"] ; + Test_last [label="last", URL=, fillcolor="#F070D1"] ; + Test_ReDun_NoDup_sind [label="NoDup_sind", URL=, peripheries=3, fillcolor="#F070D1"] ; + Test_remove_In [label="remove_In", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_ReDun_NoDup_ind [label="NoDup_ind", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_ReDun_NoDup_cons [label="NoDup_cons", URL=, fillcolor="#7FAAFF"] ; + Test_remove [label="remove", URL=, fillcolor="#F070D1"] ; + Test_ReDun_NoDup_nil [label="NoDup_nil", URL=, peripheries=3, fillcolor="#7FAAFF"] ; + Test_app_nth2 [label="app_nth2", URL=, fillcolor="#7FFFD4"] ; + Test_ReDun_NoDup [label="NoDup", URL=, fillcolor="#E2CDFA"] ; + Test_app_nth1 [label="app_nth1", URL=, fillcolor="#7FFFD4"] ; + Test_nth_indep [label="nth_indep", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_ReDun_A [label="A", URL=, fillcolor="#FACDEF"] ; + Test_seq_shift [label="seq_shift", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_nth_overflow [label="nth_overflow", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_seq_nth [label="seq_nth", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_nth_In [label="nth_In", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_seq_length [label="seq_length", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_nth_default [label="nth_default", URL=, peripheries=3, fillcolor="#F070D1"] ; + Test_seq [label="seq", URL=, fillcolor="#F070D1"] ; + Test_nth_error [label="nth_error", URL=, fillcolor="#F070D1"] ; + Test_nth_S_cons [label="nth_S_cons", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_firstn_removelast [label="firstn_removelast", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_removelast_firstn [label="removelast_firstn", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_nth_in_or_default [label="nth_in_or_default", URL=, peripheries=3, fillcolor="#F070D1"] ; + Test_nth_ok [label="nth_ok", URL=, peripheries=3, fillcolor="#F070D1"] ; + Test_firstn_length [label="firstn_length", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_nth [label="nth", URL=, fillcolor="#F070D1"] ; + Test_firstn_skipn [label="firstn_skipn", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_skipn [label="skipn", URL=, fillcolor="#F070D1"] ; + Test_app_inv_tail [label="app_inv_tail", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_firstn [label="firstn", URL=, fillcolor="#F070D1"] ; + Test_app_inv_head [label="app_inv_head", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_incl_app [label="incl_app", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_in_or_app [label="in_or_app", URL=, fillcolor="#7FFFD4"] ; + Test_incl_cons [label="incl_cons", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_in_app_or [label="in_app_or", URL=, fillcolor="#7FFFD4"] ; + Test_incl_appr [label="incl_appr", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_app_length [label="app_length", URL=, fillcolor="#7FFFD4"] ; + Test_incl_appl [label="incl_appl", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_app_inj_tail [label="app_inj_tail", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_incl_tran [label="incl_tran", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_app_eq_unit [label="app_eq_unit", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_incl_tl [label="incl_tl", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_app_eq_nil [label="app_eq_nil", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_incl_refl [label="incl_refl", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_app_comm_cons [label="app_comm_cons", URL=, fillcolor="#7FFFD4"] ; + Test_incl [label="incl", URL=, fillcolor="#F070D1"] ; + Test_ass_app [label="ass_app", URL=, fillcolor="#7FFFD4"] ; + Test_lel_nil [label="lel_nil", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_app_ass [label="app_ass", URL=, fillcolor="#7FFFD4"] ; + Test_lel_tail [label="lel_tail", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_app_nil_end [label="app_nil_end", URL=, fillcolor="#7FFFD4"] ; + Test_lel_cons [label="lel_cons", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_app_cons_not_nil [label="app_cons_not_nil", URL=, fillcolor="#7FFFD4"] ; + Test_lel_cons_cons [label="lel_cons_cons", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_In_dec [label="In_dec", URL=, peripheries=3, fillcolor="#F070D1"] ; + Test_lel_trans [label="lel_trans", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_in_inv [label="in_inv", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_lel_refl [label="lel_refl", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_In_split [label="In_split", URL=, fillcolor="#7FFFD4"] ; + Test_lel [label="lel", URL=, fillcolor="#F070D1"] ; + Test_in_nil [label="in_nil", URL=, fillcolor="#7FFFD4"] ; + Test_prod_length [label="prod_length", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_in_cons [label="in_cons", URL=, fillcolor="#7FFFD4"] ; + Test_in_prod_iff [label="in_prod_iff", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_in_eq [label="in_eq", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_in_prod [label="in_prod", URL=, fillcolor="#7FFFD4"] ; + Test_head_cons [label="head_cons", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_in_prod_aux [label="in_prod_aux", URL=, fillcolor="#7FFFD4"] ; + Test_head_nil [label="head_nil", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_list_prod [label="list_prod", URL=, fillcolor="#F070D1"] ; + Test_destruct_list [label="destruct_list", URL=, peripheries=3, fillcolor="#F070D1"] ; + Test_nil_cons [label="nil_cons", URL=, fillcolor="#7FFFD4"] ; + Test_combine_nth [label="combine_nth", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_combine_length [label="combine_length", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_app [label="app", URL=, fillcolor="#F070D1"] ; + Test_in_combine_r [label="in_combine_r", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_In [label="In", URL=, fillcolor="#F070D1"] ; + Test_size_nil [label="size_nil", URL=, peripheries=3, fillcolor="#FFB57F"] ; + Test_in_combine_l [label="in_combine_l", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_size [label="size", URL=, fillcolor="#FACDEF"] ; + Test_combine_split [label="combine_split", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_split_combine [label="split_combine", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_length [label="length", URL=, fillcolor="#F070D1"] ; + Test_tail [label="tail", URL=, peripheries=3, fillcolor="#F070D1"] ; + Test_combine [label="combine", URL=, fillcolor="#F070D1"] ; + Test_split_length_r [label="split_length_r", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_hd [label="hd", URL=, peripheries=3, fillcolor="#F070D1"] ; + Test_split_length_l [label="split_length_l", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_head [label="head", URL=, fillcolor="#F070D1"] ; + Test_split_nth [label="split_nth", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_list_sind [label="list_sind", URL=, peripheries=3, fillcolor="#F070D1"] ; + Test_list_rec [label="list_rec", URL=, fillcolor="#F070D1"] ; + Test_in_split_r [label="in_split_r", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_list_ind [label="list_ind", URL=, fillcolor="#7FFFD4"] ; + Test_in_split_l [label="in_split_l", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_split [label="split", URL=, fillcolor="#F070D1"] ; + Test_list_rect [label="list_rect", URL=, fillcolor="#F070D1"] ; + Test_cons [label="cons", URL=, fillcolor="#7FAAFF"] ; + Test_partition [label="partition", URL=, peripheries=3, fillcolor="#F070D1"] ; + Test_nil [label="nil", URL=, fillcolor="#7FAAFF"] ; + Test_find [label="find", URL=, peripheries=3, fillcolor="#F070D1"] ; + Test_list [label="list", URL=, fillcolor="#E2CDFA"] ; + Test_filter_In [label="filter_In", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_filter [label="filter", URL=, fillcolor="#F070D1"] ; + Test_forallb_forall [label="forallb_forall", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_forallb [label="forallb", URL=, fillcolor="#F070D1"] ; + Test_existsb_nth [label="existsb_nth", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_existsb_exists [label="existsb_exists", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_existsb [label="existsb", URL=, fillcolor="#F070D1"] ; + Test_list_power [label="list_power", URL=, peripheries=3, fillcolor="#F070D1"] ; + Test_fold_symmetric [label="fold_symmetric", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_fold_left_rev_right [label="fold_left_rev_right", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_fold_right_app [label="fold_right_app", URL=, fillcolor="#7FFFD4"] ; + Test_fold_right [label="fold_right", URL=, fillcolor="#F070D1"] ; + Test_fold_left_length [label="fold_left_length", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_fold_left_app [label="fold_left_app", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_fold_left [label="fold_left", URL=, fillcolor="#F070D1"] ; + Test_map_ext [label="map_ext", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_map_map [label="map_map", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_in_flat_map [label="in_flat_map", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_flat_map [label="flat_map", URL=, fillcolor="#F070D1"] ; + Test_Permutation_map [label="Permutation_map", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_map_rev [label="map_rev", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_map_app [label="map_app", URL=, fillcolor="#7FFFD4"] ; + Test_map_nth [label="map_nth", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_map_length [label="map_length", URL=, fillcolor="#7FFFD4"] ; + Test_in_map_iff [label="in_map_iff", URL=, fillcolor="#7FFFD4"] ; + Test_in_map [label="in_map", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_map [label="map", URL=, fillcolor="#F070D1"] ; + Test_list_eq_dec [label="list_eq_dec", URL=, peripheries=3, fillcolor="#F070D1"] ; + Test_Permutation_app_inv_r [label="Permutation_app_inv_r", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_Permutation_app_inv_l [label="Permutation_app_inv_l", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_Permutation_cons_app_inv [label="Permutation_cons_app_inv", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_Permutation_cons_inv [label="Permutation_cons_inv", URL=, fillcolor="#7FFFD4"] ; + Test_Permutation_app_inv [label="Permutation_app_inv", URL=, fillcolor="#7FFFD4"] ; + Test_Permutation_ind_bis [label="Permutation_ind_bis", URL=, fillcolor="#7FFFD4"] ; + Test_Permutation_rev [label="Permutation_rev", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_Permutation_length [label="Permutation_length", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_Permutation_cons_app [label="Permutation_cons_app", URL=, fillcolor="#7FFFD4"] ; + Test_Permutation_app_swap [label="Permutation_app_swap", URL=, fillcolor="#7FFFD4"] ; + Test_Permutation_app [label="Permutation_app", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_Permutation_app_head [label="Permutation_app_head", URL=, fillcolor="#7FFFD4"] ; + Test_Permutation_app_tail [label="Permutation_app_tail", URL=, fillcolor="#7FFFD4"] ; + Test_Permutation_in [label="Permutation_in", URL=, fillcolor="#7FFFD4"] ; + Test_Permutation_trans [label="Permutation_trans", URL=, fillcolor="#7FFFD4"] ; + Test_Permutation_sym [label="Permutation_sym", URL=, fillcolor="#7FFFD4"] ; + Test_Permutation_refl [label="Permutation_refl", URL=, fillcolor="#7FFFD4"] ; + Test_Permutation_nil_cons [label="Permutation_nil_cons", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_Permutation_nil [label="Permutation_nil", URL=, fillcolor="#7FFFD4"] ; + Test_Permutation_sind [label="Permutation_sind", URL=, peripheries=3, fillcolor="#F070D1"] ; + Test_Permutation_ind [label="Permutation_ind", URL=, fillcolor="#7FFFD4"] ; + Test_perm_trans [label="perm_trans", URL=, fillcolor="#7FAAFF"] ; + Test_perm_swap [label="perm_swap", URL=, fillcolor="#7FAAFF"] ; + Test_perm_skip [label="perm_skip", URL=, fillcolor="#7FAAFF"] ; + Test_perm_nil [label="perm_nil", URL=, fillcolor="#7FAAFF"] ; + Test_Permutation [label="Permutation", URL=, fillcolor="#E2CDFA"] ; + Test_rev_ind [label="rev_ind", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_rev_list_ind [label="rev_list_ind", URL=, fillcolor="#7FFFD4"] ; + Test_rev_alt [label="rev_alt", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_rev_append_rev [label="rev_append_rev", URL=, fillcolor="#7FFFD4"] ; + Test_rev_ [label="rev'", URL=, peripheries=3, fillcolor="#F070D1"] ; + Test_rev_append [label="rev_append", URL=, fillcolor="#F070D1"] ; + Test_rev_nth [label="rev_nth", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_rev_length [label="rev_length", URL=, fillcolor="#7FFFD4"] ; + Test_In_rev [label="In_rev", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_rev_involutive [label="rev_involutive", URL=, fillcolor="#7FFFD4"] ; + Test_rev_unit [label="rev_unit", URL=, fillcolor="#7FFFD4"] ; + Test_distr_rev [label="distr_rev", URL=, fillcolor="#7FFFD4"] ; + Test_rev [label="rev", URL=, fillcolor="#F070D1"] ; + Test_count_occ_cons_neq [label="count_occ_cons_neq", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_count_occ_cons_eq [label="count_occ_cons_eq", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_count_occ_nil [label="count_occ_nil", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_count_occ_inv_nil [label="count_occ_inv_nil", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_count_occ_In [label="count_occ_In", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_count_occ [label="count_occ", URL=, fillcolor="#F070D1"] ; + Test_removelast_app -> Test_removelast [] ; + Test_removelast_app -> Test_app [] ; + Test_removelast_app -> Test_list_ind [] ; + Test_exists_last -> Test_app [] ; + Test_exists_last -> Test_list_rect [] ; + Test_ReDun_NoDup_Permutation -> Test_ReDun_NoDup_remove_2 [] ; + Test_ReDun_NoDup_Permutation -> Test_ReDun_NoDup_remove_1 [] ; + Test_ReDun_NoDup_Permutation -> Test_Permutation_cons_app [] ; + Test_ReDun_NoDup_Permutation -> Test_In_split [] ; + Test_app_removelast_last -> Test_removelast [] ; + Test_app_removelast_last -> Test_last [] ; + Test_app_removelast_last -> Test_app [] ; + Test_app_removelast_last -> Test_list_ind [] ; + Test_ReDun_NoDup_remove_2 -> Test_ReDun_NoDup [] ; + Test_ReDun_NoDup_remove_2 -> Test_in_or_app [] ; + Test_removelast -> Test_cons [] ; + Test_removelast -> Test_nil [] ; + Test_removelast -> Test_list [] ; + Test_ReDun_NoDup_remove_1 -> Test_ReDun_NoDup_cons [] ; + Test_ReDun_NoDup_remove_1 -> Test_ReDun_NoDup [] ; + Test_ReDun_NoDup_remove_1 -> Test_in_or_app [] ; + Test_ReDun_NoDup_remove_1 -> Test_in_app_or [] ; + Test_last -> Test_list [] ; + Test_ReDun_NoDup_sind -> Test_ReDun_NoDup [] ; + Test_remove_In -> Test_remove [] ; + Test_remove_In -> Test_In [] ; + Test_remove_In -> Test_list_ind [] ; + Test_ReDun_NoDup_ind -> Test_ReDun_NoDup [] ; + Test_ReDun_NoDup_cons -> Test_ReDun_A [] ; + Test_ReDun_NoDup_cons -> Test_In [] ; + Test_ReDun_NoDup_cons -> Test_cons [] ; + Test_ReDun_NoDup_cons -> Test_nil [] ; + Test_remove -> Test_cons [] ; + Test_remove -> Test_nil [] ; + Test_remove -> Test_list [] ; + Test_ReDun_NoDup_nil -> Test_ReDun_A [] ; + Test_ReDun_NoDup_nil -> Test_In [] ; + Test_ReDun_NoDup_nil -> Test_cons [] ; + Test_ReDun_NoDup_nil -> Test_nil [] ; + Test_app_nth2 -> Test_nth [] ; + Test_app_nth2 -> Test_app [] ; + Test_app_nth2 -> Test_length [] ; + Test_app_nth2 -> Test_list_ind [] ; + Test_ReDun_NoDup -> Test_ReDun_A [] ; + Test_ReDun_NoDup -> Test_In [] ; + Test_ReDun_NoDup -> Test_cons [] ; + Test_ReDun_NoDup -> Test_nil [] ; + Test_app_nth1 -> Test_nth [] ; + Test_app_nth1 -> Test_app [] ; + Test_app_nth1 -> Test_length [] ; + Test_app_nth1 -> Test_list_ind [] ; + Test_nth_indep -> Test_nth [] ; + Test_nth_indep -> Test_length [] ; + Test_nth_indep -> Test_list_ind [] ; + Test_seq_shift -> Test_seq [] ; + Test_seq_shift -> Test_map [] ; + Test_nth_overflow -> Test_nth [] ; + Test_nth_overflow -> Test_length [] ; + Test_nth_overflow -> Test_list_ind [] ; + Test_seq_nth -> Test_seq [] ; + Test_seq_nth -> Test_nth [] ; + Test_nth_In -> Test_nth [] ; + Test_nth_In -> Test_In [] ; + Test_nth_In -> Test_length [] ; + Test_nth_In -> Test_cons [] ; + Test_nth_In -> Test_nil [] ; + Test_seq_length -> Test_seq [] ; + Test_seq_length -> Test_length [] ; + Test_nth_default -> Test_nth_error [] ; + Test_seq -> Test_cons [] ; + Test_seq -> Test_nil [] ; + Test_seq -> Test_list [] ; + Test_nth_error -> Test_list [] ; + Test_nth_S_cons -> Test_nth [] ; + Test_nth_S_cons -> Test_In [] ; + Test_nth_S_cons -> Test_cons [] ; + Test_firstn_removelast -> Test_firstn [] ; + Test_firstn_removelast -> Test_removelast_app [] ; + Test_firstn_removelast -> Test_length [] ; + Test_removelast_firstn -> Test_firstn [] ; + Test_removelast_firstn -> Test_removelast_app [] ; + Test_removelast_firstn -> Test_length [] ; + Test_nth_in_or_default -> Test_nth [] ; + Test_nth_in_or_default -> Test_In [] ; + Test_nth_in_or_default -> Test_list_rec [] ; + Test_nth_ok -> Test_list [] ; + Test_firstn_length -> Test_firstn [] ; + Test_firstn_length -> Test_length [] ; + Test_nth -> Test_list [] ; + Test_firstn_skipn -> Test_skipn [] ; + Test_firstn_skipn -> Test_firstn [] ; + Test_firstn_skipn -> Test_app [] ; + Test_skipn -> Test_nil [] ; + Test_skipn -> Test_list [] ; + Test_app_inv_tail -> Test_app_length [] ; + Test_firstn -> Test_cons [] ; + Test_firstn -> Test_nil [] ; + Test_firstn -> Test_list [] ; + Test_app_inv_head -> Test_app [] ; + Test_app_inv_head -> Test_list_ind [] ; + Test_incl_app -> Test_incl [] ; + Test_incl_app -> Test_in_app_or [] ; + Test_in_or_app -> Test_app [] ; + Test_in_or_app -> Test_In [] ; + Test_in_or_app -> Test_list_ind [] ; + Test_incl_cons -> Test_incl [] ; + Test_incl_cons -> Test_cons [] ; + Test_in_app_or -> Test_app [] ; + Test_in_app_or -> Test_In [] ; + Test_in_app_or -> Test_list_ind [] ; + Test_incl_appr -> Test_incl [] ; + Test_incl_appr -> Test_in_or_app [] ; + Test_app_length -> Test_app [] ; + Test_app_length -> Test_length [] ; + Test_app_length -> Test_list_ind [] ; + Test_incl_appl -> Test_incl [] ; + Test_incl_appl -> Test_in_or_app [] ; + Test_app_inj_tail -> Test_app_cons_not_nil [] ; + Test_app_inj_tail -> Test_list_ind [] ; + Test_incl_tran -> Test_incl [] ; + Test_app_eq_unit -> Test_app_nil_end [] ; + Test_app_eq_unit -> Test_app_cons_not_nil [] ; + Test_incl_tl -> Test_incl [] ; + Test_incl_tl -> Test_in_cons [] ; + Test_app_eq_nil -> Test_app [] ; + Test_app_eq_nil -> Test_nil [] ; + Test_incl_refl -> Test_incl [] ; + Test_app_comm_cons -> Test_app [] ; + Test_incl -> Test_In [] ; + Test_ass_app -> Test_app_ass [] ; + Test_lel_nil -> Test_lel [] ; + Test_lel_nil -> Test_list_ind [] ; + Test_app_ass -> Test_app [] ; + Test_app_ass -> Test_list_ind [] ; + Test_lel_tail -> Test_lel [] ; + Test_lel_tail -> Test_cons [] ; + Test_app_nil_end -> Test_app [] ; + Test_app_nil_end -> Test_list_ind [] ; + Test_lel_cons -> Test_lel [] ; + Test_lel_cons -> Test_cons [] ; + Test_app_cons_not_nil -> Test_app [] ; + Test_app_cons_not_nil -> Test_nil [] ; + Test_lel_cons_cons -> Test_lel [] ; + Test_lel_cons_cons -> Test_cons [] ; + Test_In_dec -> Test_in_nil [] ; + Test_In_dec -> Test_list_rec [] ; + Test_lel_trans -> Test_lel [] ; + Test_in_inv -> Test_In [] ; + Test_in_inv -> Test_cons [] ; + Test_lel_refl -> Test_lel [] ; + Test_In_split -> Test_app [] ; + Test_In_split -> Test_In [] ; + Test_In_split -> Test_list_ind [] ; + Test_lel -> Test_length [] ; + Test_in_nil -> Test_In [] ; + Test_in_nil -> Test_nil [] ; + Test_prod_length -> Test_list_prod [] ; + Test_prod_length -> Test_map_length [] ; + Test_prod_length -> Test_app_length [] ; + Test_in_cons -> Test_In [] ; + Test_in_cons -> Test_cons [] ; + Test_in_prod_iff -> Test_in_prod [] ; + Test_in_prod_iff -> Test_in_map_iff [] ; + Test_in_prod_iff -> Test_in_app_or [] ; + Test_in_eq -> Test_In [] ; + Test_in_eq -> Test_cons [] ; + Test_in_prod -> Test_in_prod_aux [] ; + Test_in_prod -> Test_list_prod [] ; + Test_in_prod -> Test_in_or_app [] ; + Test_head_cons -> Test_head [] ; + Test_head_cons -> Test_cons [] ; + Test_in_prod_aux -> Test_map [] ; + Test_in_prod_aux -> Test_In [] ; + Test_in_prod_aux -> Test_list_ind [] ; + Test_head_nil -> Test_head [] ; + Test_head_nil -> Test_nil [] ; + Test_list_prod -> Test_map [] ; + Test_list_prod -> Test_app [] ; + Test_destruct_list -> Test_list_rect [] ; + Test_nil_cons -> Test_cons [] ; + Test_nil_cons -> Test_nil [] ; + Test_nil_cons -> Test_list [] ; + Test_combine_nth -> Test_combine [] ; + Test_combine_nth -> Test_nth [] ; + Test_combine_nth -> Test_length [] ; + Test_combine_nth -> Test_list_ind [] ; + Test_combine_length -> Test_combine [] ; + Test_combine_length -> Test_length [] ; + Test_combine_length -> Test_list_ind [] ; + Test_app -> Test_cons [] ; + Test_app -> Test_list [] ; + Test_in_combine_r -> Test_combine [] ; + Test_in_combine_r -> Test_In [] ; + Test_in_combine_r -> Test_list_ind [] ; + Test_In -> Test_list [] ; + Test_size_nil -> Test_size [] ; + Test_size_nil -> Test_nil [] ; + Test_in_combine_l -> Test_combine [] ; + Test_in_combine_l -> Test_In [] ; + Test_in_combine_l -> Test_list_ind [] ; + Test_size -> Test_list [] ; + Test_combine_split -> Test_combine [] ; + Test_combine_split -> Test_split [] ; + Test_combine_split -> Test_length [] ; + Test_combine_split -> Test_list_ind [] ; + Test_split_combine -> Test_combine [] ; + Test_split_combine -> Test_split [] ; + Test_split_combine -> Test_list_ind [] ; + Test_length -> Test_list [] ; + Test_tail -> Test_nil [] ; + Test_tail -> Test_list [] ; + Test_combine -> Test_cons [] ; + Test_combine -> Test_nil [] ; + Test_combine -> Test_list [] ; + Test_split_length_r -> Test_split [] ; + Test_split_length_r -> Test_length [] ; + Test_split_length_r -> Test_list_ind [] ; + Test_hd -> Test_list [] ; + Test_split_length_l -> Test_split [] ; + Test_split_length_l -> Test_length [] ; + Test_split_length_l -> Test_list_ind [] ; + Test_head -> Test_list [] ; + Test_split_nth -> Test_split [] ; + Test_split_nth -> Test_nth [] ; + Test_split_nth -> Test_list_ind [] ; + Test_list_sind -> Test_cons [] ; + Test_list_sind -> Test_nil [] ; + Test_list_sind -> Test_list [] ; + Test_list_rec -> Test_list_rect [] ; + Test_in_split_r -> Test_split [] ; + Test_in_split_r -> Test_In [] ; + Test_in_split_r -> Test_list_ind [] ; + Test_list_ind -> Test_cons [] ; + Test_list_ind -> Test_nil [] ; + Test_list_ind -> Test_list [] ; + Test_in_split_l -> Test_split [] ; + Test_in_split_l -> Test_In [] ; + Test_in_split_l -> Test_list_ind [] ; + Test_split -> Test_cons [] ; + Test_split -> Test_nil [] ; + Test_split -> Test_list [] ; + Test_list_rect -> Test_cons [] ; + Test_list_rect -> Test_nil [] ; + Test_list_rect -> Test_list [] ; + Test_partition -> Test_cons [] ; + Test_partition -> Test_nil [] ; + Test_partition -> Test_list [] ; + Test_find -> Test_list [] ; + Test_filter_In -> Test_filter [] ; + Test_filter_In -> Test_In [] ; + Test_filter_In -> Test_list_ind [] ; + Test_filter -> Test_cons [] ; + Test_filter -> Test_nil [] ; + Test_filter -> Test_list [] ; + Test_forallb_forall -> Test_forallb [] ; + Test_forallb_forall -> Test_In [] ; + Test_forallb_forall -> Test_list_ind [] ; + Test_forallb -> Test_list [] ; + Test_existsb_nth -> Test_existsb [] ; + Test_existsb_nth -> Test_nth [] ; + Test_existsb_nth -> Test_length [] ; + Test_existsb_nth -> Test_list_ind [] ; + Test_existsb_exists -> Test_existsb [] ; + Test_existsb_exists -> Test_In [] ; + Test_existsb_exists -> Test_list_ind [] ; + Test_existsb -> Test_list [] ; + Test_list_power -> Test_flat_map [] ; + Test_list_power -> Test_map [] ; + Test_fold_symmetric -> Test_fold_right [] ; + Test_fold_symmetric -> Test_fold_left [] ; + Test_fold_symmetric -> Test_list_ind [] ; + Test_fold_left_rev_right -> Test_fold_right_app [] ; + Test_fold_left_rev_right -> Test_fold_left [] ; + Test_fold_left_rev_right -> Test_rev [] ; + Test_fold_right_app -> Test_fold_right [] ; + Test_fold_right_app -> Test_app [] ; + Test_fold_right_app -> Test_list_ind [] ; + Test_fold_right -> Test_list [] ; + Test_fold_left_length -> Test_fold_left [] ; + Test_fold_left_length -> Test_length [] ; + Test_fold_left_length -> Test_list_ind [] ; + Test_fold_left_app -> Test_fold_left [] ; + Test_fold_left_app -> Test_app [] ; + Test_fold_left_app -> Test_list_ind [] ; + Test_fold_left -> Test_list [] ; + Test_map_ext -> Test_map [] ; + Test_map_ext -> Test_list_ind [] ; + Test_map_map -> Test_map [] ; + Test_map_map -> Test_list_ind [] ; + Test_in_flat_map -> Test_flat_map [] ; + Test_in_flat_map -> Test_in_or_app [] ; + Test_in_flat_map -> Test_in_app_or [] ; + Test_flat_map -> Test_app [] ; + Test_flat_map -> Test_nil [] ; + Test_Permutation_map -> Test_map [] ; + Test_Permutation_map -> Test_Permutation_ind [] ; + Test_Permutation_map -> Test_perm_trans [] ; + Test_Permutation_map -> Test_perm_swap [] ; + Test_Permutation_map -> Test_perm_skip [] ; + Test_Permutation_map -> Test_perm_nil [] ; + Test_map_rev -> Test_map_app [] ; + Test_map_rev -> Test_rev [] ; + Test_map_app -> Test_map [] ; + Test_map_app -> Test_app [] ; + Test_map_app -> Test_list_ind [] ; + Test_map_nth -> Test_map [] ; + Test_map_nth -> Test_nth [] ; + Test_map_nth -> Test_list_ind [] ; + Test_map_length -> Test_map [] ; + Test_map_length -> Test_length [] ; + Test_map_length -> Test_list_ind [] ; + Test_in_map_iff -> Test_map [] ; + Test_in_map_iff -> Test_In [] ; + Test_in_map_iff -> Test_list_ind [] ; + Test_in_map -> Test_map [] ; + Test_in_map -> Test_In [] ; + Test_in_map -> Test_list_ind [] ; + Test_map -> Test_cons [] ; + Test_map -> Test_nil [] ; + Test_map -> Test_list [] ; + Test_list_eq_dec -> Test_nil_cons [] ; + Test_list_eq_dec -> Test_list_rect [] ; + Test_Permutation_app_inv_r -> Test_Permutation_app_inv [] ; + Test_Permutation_app_inv_r -> Test_app_nil_end [] ; + Test_Permutation_app_inv_l -> Test_Permutation_cons_inv [] ; + Test_Permutation_cons_app_inv -> Test_Permutation_app_inv [] ; + Test_Permutation_cons_inv -> Test_Permutation_app_inv [] ; + Test_Permutation_app_inv -> Test_Permutation_ind_bis [] ; + Test_Permutation_app_inv -> Test_Permutation_cons_app [] ; + Test_Permutation_app_inv -> Test_Permutation_in [] ; + Test_Permutation_app_inv -> Test_Permutation_sym [] ; + Test_Permutation_app_inv -> Test_in_or_app [] ; + Test_Permutation_app_inv -> Test_In_split [] ; + Test_Permutation_ind_bis -> Test_Permutation_refl [] ; + Test_Permutation_ind_bis -> Test_Permutation_ind [] ; + Test_Permutation_ind_bis -> Test_perm_swap [] ; + Test_Permutation_rev -> Test_Permutation_app_swap [] ; + Test_Permutation_rev -> Test_rev [] ; + Test_Permutation_length -> Test_Permutation_ind [] ; + Test_Permutation_length -> Test_length [] ; + Test_Permutation_cons_app -> Test_Permutation_refl [] ; + Test_Permutation_cons_app -> Test_perm_trans [] ; + Test_Permutation_cons_app -> Test_perm_swap [] ; + Test_Permutation_cons_app -> Test_app [] ; + Test_Permutation_app_swap -> Test_Permutation_trans [] ; + Test_Permutation_app_swap -> Test_Permutation_sym [] ; + Test_Permutation_app_swap -> Test_Permutation_refl [] ; + Test_Permutation_app_swap -> Test_app_comm_cons [] ; + Test_Permutation_app_swap -> Test_app_nil_end [] ; + Test_Permutation_app -> Test_Permutation_app_head [] ; + Test_Permutation_app -> Test_Permutation_app_tail [] ; + Test_Permutation_app_head -> Test_perm_skip [] ; + Test_Permutation_app_head -> Test_Permutation [] ; + Test_Permutation_app_head -> Test_app_comm_cons [] ; + Test_Permutation_app_head -> Test_list_ind [] ; + Test_Permutation_app_tail -> Test_Permutation_trans [] ; + Test_Permutation_app_tail -> Test_Permutation_sym [] ; + Test_Permutation_app_tail -> Test_Permutation_refl [] ; + Test_Permutation_app_tail -> Test_app [] ; + Test_Permutation_in -> Test_Permutation_ind [] ; + Test_Permutation_in -> Test_In [] ; + Test_Permutation_trans -> Test_perm_trans [] ; + Test_Permutation_trans -> Test_Permutation [] ; + Test_Permutation_sym -> Test_Permutation_ind [] ; + Test_Permutation_sym -> Test_perm_trans [] ; + Test_Permutation_sym -> Test_perm_swap [] ; + Test_Permutation_sym -> Test_perm_skip [] ; + Test_Permutation_sym -> Test_perm_nil [] ; + Test_Permutation_refl -> Test_perm_skip [] ; + Test_Permutation_refl -> Test_perm_nil [] ; + Test_Permutation_refl -> Test_Permutation [] ; + Test_Permutation_refl -> Test_list_ind [] ; + Test_Permutation_nil_cons -> Test_Permutation_nil [] ; + Test_Permutation_nil -> Test_Permutation_ind [] ; + Test_Permutation_nil -> Test_nil_cons [] ; + Test_Permutation_sind -> Test_Permutation [] ; + Test_Permutation_ind -> Test_Permutation [] ; + Test_perm_trans -> Test_cons [] ; + Test_perm_trans -> Test_nil [] ; + Test_perm_trans -> Test_list [] ; + Test_perm_swap -> Test_cons [] ; + Test_perm_swap -> Test_nil [] ; + Test_perm_swap -> Test_list [] ; + Test_perm_skip -> Test_cons [] ; + Test_perm_skip -> Test_nil [] ; + Test_perm_skip -> Test_list [] ; + Test_perm_nil -> Test_cons [] ; + Test_perm_nil -> Test_nil [] ; + Test_perm_nil -> Test_list [] ; + Test_Permutation -> Test_cons [] ; + Test_Permutation -> Test_nil [] ; + Test_Permutation -> Test_list [] ; + Test_rev_ind -> Test_rev_list_ind [] ; + Test_rev_ind -> Test_rev_involutive [] ; + Test_rev_list_ind -> Test_rev [] ; + Test_rev_list_ind -> Test_list_ind [] ; + Test_rev_alt -> Test_rev_append_rev [] ; + Test_rev_alt -> Test_app_nil_end [] ; + Test_rev_append_rev -> Test_rev_append [] ; + Test_rev_append_rev -> Test_rev [] ; + Test_rev_append_rev -> Test_ass_app [] ; + Test_rev_ -> Test_rev_append [] ; + Test_rev_ -> Test_nil [] ; + Test_rev_append -> Test_cons [] ; + Test_rev_append -> Test_list [] ; + Test_rev_nth -> Test_rev_length [] ; + Test_rev_nth -> Test_app_nth2 [] ; + Test_rev_nth -> Test_app_nth1 [] ; + Test_rev_length -> Test_rev [] ; + Test_rev_length -> Test_app_length [] ; + Test_In_rev -> Test_rev [] ; + Test_In_rev -> Test_in_or_app [] ; + Test_In_rev -> Test_in_app_or [] ; + Test_rev_involutive -> Test_rev_unit [] ; + Test_rev_unit -> Test_distr_rev [] ; + Test_distr_rev -> Test_rev [] ; + Test_distr_rev -> Test_app_ass [] ; + Test_distr_rev -> Test_app_nil_end [] ; + Test_rev -> Test_app [] ; + Test_rev -> Test_nil [] ; + Test_count_occ_cons_neq -> Test_count_occ [] ; + Test_count_occ_cons_neq -> Test_cons [] ; + Test_count_occ_cons_eq -> Test_count_occ [] ; + Test_count_occ_cons_eq -> Test_cons [] ; + Test_count_occ_nil -> Test_count_occ [] ; + Test_count_occ_nil -> Test_nil [] ; + Test_count_occ_inv_nil -> Test_count_occ [] ; + Test_count_occ_inv_nil -> Test_list_ind [] ; + Test_count_occ_In -> Test_count_occ [] ; + Test_count_occ_In -> Test_In [] ; + Test_count_occ_In -> Test_list_ind [] ; + Test_count_occ -> Test_list [] ; + subgraph cluster_Test { label="Test"; fillcolor="#FFFFC3"; labeljust=l; style=filled + subgraph cluster_Test_ReDun { label="ReDun"; fillcolor="#FFFFA3"; labeljust=l; style=filled + Test_ReDun_A; Test_ReDun_NoDup; Test_ReDun_NoDup_nil; Test_ReDun_NoDup_cons; Test_ReDun_NoDup_ind; Test_ReDun_NoDup_sind; Test_ReDun_NoDup_remove_1; Test_ReDun_NoDup_remove_2; Test_ReDun_NoDup_Permutation; }; + Test_count_occ; Test_count_occ_In; Test_count_occ_inv_nil; Test_count_occ_nil; Test_count_occ_cons_eq; Test_count_occ_cons_neq; Test_rev; Test_distr_rev; Test_rev_unit; Test_rev_involutive; Test_In_rev; Test_rev_length; Test_rev_nth; Test_rev_append; Test_rev_; Test_rev_append_rev; Test_rev_alt; Test_rev_list_ind; Test_rev_ind; Test_Permutation; Test_perm_nil; Test_perm_skip; Test_perm_swap; Test_perm_trans; Test_Permutation_ind; Test_Permutation_sind; Test_Permutation_nil; Test_Permutation_nil_cons; Test_Permutation_refl; Test_Permutation_sym; Test_Permutation_trans; Test_Permutation_in; Test_Permutation_app_tail; Test_Permutation_app_head; Test_Permutation_app; Test_Permutation_app_swap; Test_Permutation_cons_app; Test_Permutation_length; Test_Permutation_rev; Test_Permutation_ind_bis; Test_Permutation_app_inv; Test_Permutation_cons_inv; Test_Permutation_cons_app_inv; Test_Permutation_app_inv_l; Test_Permutation_app_inv_r; Test_list_eq_dec; Test_map; Test_in_map; Test_in_map_iff; Test_map_length; Test_map_nth; Test_map_app; Test_map_rev; Test_Permutation_map; Test_flat_map; Test_in_flat_map; Test_map_map; Test_map_ext; Test_fold_left; Test_fold_left_app; Test_fold_left_length; Test_fold_right; Test_fold_right_app; Test_fold_left_rev_right; Test_fold_symmetric; Test_list_power; Test_existsb; Test_existsb_exists; Test_existsb_nth; Test_forallb; Test_forallb_forall; Test_filter; Test_filter_In; Test_list; Test_find; Test_nil; Test_partition; Test_cons; Test_list_rect; Test_split; Test_in_split_l; Test_list_ind; Test_in_split_r; Test_list_rec; Test_list_sind; Test_split_nth; Test_head; Test_split_length_l; Test_hd; Test_split_length_r; Test_combine; Test_tail; Test_length; Test_split_combine; Test_combine_split; Test_size; Test_in_combine_l; Test_size_nil; Test_In; Test_in_combine_r; Test_app; Test_combine_length; Test_combine_nth; Test_nil_cons; Test_destruct_list; Test_list_prod; Test_head_nil; Test_in_prod_aux; Test_head_cons; Test_in_prod; Test_in_eq; Test_in_prod_iff; Test_in_cons; Test_prod_length; Test_in_nil; Test_lel; Test_In_split; Test_lel_refl; Test_in_inv; Test_lel_trans; Test_In_dec; Test_lel_cons_cons; Test_app_cons_not_nil; Test_lel_cons; Test_app_nil_end; Test_lel_tail; Test_app_ass; Test_lel_nil; Test_ass_app; Test_incl; Test_app_comm_cons; Test_incl_refl; Test_app_eq_nil; Test_incl_tl; Test_app_eq_unit; Test_incl_tran; Test_app_inj_tail; Test_incl_appl; Test_app_length; Test_incl_appr; Test_in_app_or; Test_incl_cons; Test_in_or_app; Test_incl_app; Test_app_inv_head; Test_firstn; Test_app_inv_tail; Test_skipn; Test_firstn_skipn; Test_nth; Test_firstn_length; Test_nth_ok; Test_nth_in_or_default; Test_removelast_firstn; Test_firstn_removelast; Test_nth_S_cons; Test_nth_error; Test_seq; Test_nth_default; Test_seq_length; Test_nth_In; Test_seq_nth; Test_nth_overflow; Test_seq_shift; Test_nth_indep; Test_app_nth1; Test_app_nth2; Test_remove; Test_remove_In; Test_last; Test_removelast; Test_app_removelast_last; Test_exists_last; Test_removelast_app; }; + } /* END */ + + $ dpd2dot graph.dpd -without-defs -o graph.without.dot + Info: read file graph.dpd + Info: Graph output in graph.without.dot + + $ cat graph.without.dot + digraph escaped_graph { + graph [ratio=0.5] + node [style=filled] + Test_removelast_app [label="removelast_app", URL=, fillcolor="#7FFFD4"] ; + Test_ReDun_NoDup_Permutation [label="NoDup_Permutation", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_app_removelast_last [label="app_removelast_last", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_ReDun_NoDup_remove_2 [label="NoDup_remove_2", URL=, fillcolor="#7FFFD4"] ; + Test_ReDun_NoDup_remove_1 [label="NoDup_remove_1", URL=, fillcolor="#7FFFD4"] ; + Test_remove_In [label="remove_In", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_ReDun_NoDup_ind [label="NoDup_ind", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_ReDun_NoDup_cons [label="NoDup_cons", URL=, fillcolor="#7FAAFF"] ; + Test_ReDun_NoDup_nil [label="NoDup_nil", URL=, peripheries=3, fillcolor="#7FAAFF"] ; + Test_app_nth2 [label="app_nth2", URL=, fillcolor="#7FFFD4"] ; + Test_app_nth1 [label="app_nth1", URL=, fillcolor="#7FFFD4"] ; + Test_nth_indep [label="nth_indep", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_seq_shift [label="seq_shift", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_nth_overflow [label="nth_overflow", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_seq_nth [label="seq_nth", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_nth_In [label="nth_In", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_seq_length [label="seq_length", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_nth_S_cons [label="nth_S_cons", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_firstn_removelast [label="firstn_removelast", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_removelast_firstn [label="removelast_firstn", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_firstn_length [label="firstn_length", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_firstn_skipn [label="firstn_skipn", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_app_inv_tail [label="app_inv_tail", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_app_inv_head [label="app_inv_head", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_incl_app [label="incl_app", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_in_or_app [label="in_or_app", URL=, fillcolor="#7FFFD4"] ; + Test_incl_cons [label="incl_cons", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_in_app_or [label="in_app_or", URL=, fillcolor="#7FFFD4"] ; + Test_incl_appr [label="incl_appr", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_app_length [label="app_length", URL=, fillcolor="#7FFFD4"] ; + Test_incl_appl [label="incl_appl", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_app_inj_tail [label="app_inj_tail", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_incl_tran [label="incl_tran", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_app_eq_unit [label="app_eq_unit", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_incl_tl [label="incl_tl", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_app_eq_nil [label="app_eq_nil", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_incl_refl [label="incl_refl", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_app_comm_cons [label="app_comm_cons", URL=, fillcolor="#7FFFD4"] ; + Test_ass_app [label="ass_app", URL=, fillcolor="#7FFFD4"] ; + Test_lel_nil [label="lel_nil", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_app_ass [label="app_ass", URL=, fillcolor="#7FFFD4"] ; + Test_lel_tail [label="lel_tail", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_app_nil_end [label="app_nil_end", URL=, fillcolor="#7FFFD4"] ; + Test_lel_cons [label="lel_cons", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_app_cons_not_nil [label="app_cons_not_nil", URL=, fillcolor="#7FFFD4"] ; + Test_lel_cons_cons [label="lel_cons_cons", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_lel_trans [label="lel_trans", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_in_inv [label="in_inv", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_lel_refl [label="lel_refl", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_In_split [label="In_split", URL=, fillcolor="#7FFFD4"] ; + Test_in_nil [label="in_nil", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_prod_length [label="prod_length", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_in_cons [label="in_cons", URL=, fillcolor="#7FFFD4"] ; + Test_in_prod_iff [label="in_prod_iff", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_in_eq [label="in_eq", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_in_prod [label="in_prod", URL=, fillcolor="#7FFFD4"] ; + Test_head_cons [label="head_cons", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_in_prod_aux [label="in_prod_aux", URL=, fillcolor="#7FFFD4"] ; + Test_head_nil [label="head_nil", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_nil_cons [label="nil_cons", URL=, fillcolor="#7FFFD4"] ; + Test_combine_nth [label="combine_nth", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_combine_length [label="combine_length", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_in_combine_r [label="in_combine_r", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_size_nil [label="size_nil", URL=, peripheries=3, fillcolor="#FFB57F"] ; + Test_in_combine_l [label="in_combine_l", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_combine_split [label="combine_split", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_split_combine [label="split_combine", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_split_length_r [label="split_length_r", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_split_length_l [label="split_length_l", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_split_nth [label="split_nth", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_in_split_r [label="in_split_r", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_list_ind [label="list_ind", URL=, fillcolor="#7FFFD4"] ; + Test_in_split_l [label="in_split_l", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_filter_In [label="filter_In", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_forallb_forall [label="forallb_forall", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_existsb_nth [label="existsb_nth", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_existsb_exists [label="existsb_exists", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_fold_symmetric [label="fold_symmetric", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_fold_left_rev_right [label="fold_left_rev_right", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_fold_right_app [label="fold_right_app", URL=, fillcolor="#7FFFD4"] ; + Test_fold_left_length [label="fold_left_length", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_fold_left_app [label="fold_left_app", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_map_ext [label="map_ext", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_map_map [label="map_map", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_in_flat_map [label="in_flat_map", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_Permutation_map [label="Permutation_map", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_map_rev [label="map_rev", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_map_app [label="map_app", URL=, fillcolor="#7FFFD4"] ; + Test_map_nth [label="map_nth", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_map_length [label="map_length", URL=, fillcolor="#7FFFD4"] ; + Test_in_map_iff [label="in_map_iff", URL=, fillcolor="#7FFFD4"] ; + Test_in_map [label="in_map", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_Permutation_app_inv_r [label="Permutation_app_inv_r", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_Permutation_app_inv_l [label="Permutation_app_inv_l", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_Permutation_cons_app_inv [label="Permutation_cons_app_inv", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_Permutation_cons_inv [label="Permutation_cons_inv", URL=, fillcolor="#7FFFD4"] ; + Test_Permutation_app_inv [label="Permutation_app_inv", URL=, fillcolor="#7FFFD4"] ; + Test_Permutation_ind_bis [label="Permutation_ind_bis", URL=, fillcolor="#7FFFD4"] ; + Test_Permutation_rev [label="Permutation_rev", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_Permutation_length [label="Permutation_length", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_Permutation_cons_app [label="Permutation_cons_app", URL=, fillcolor="#7FFFD4"] ; + Test_Permutation_app_swap [label="Permutation_app_swap", URL=, fillcolor="#7FFFD4"] ; + Test_Permutation_app [label="Permutation_app", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_Permutation_app_head [label="Permutation_app_head", URL=, fillcolor="#7FFFD4"] ; + Test_Permutation_app_tail [label="Permutation_app_tail", URL=, fillcolor="#7FFFD4"] ; + Test_Permutation_in [label="Permutation_in", URL=, fillcolor="#7FFFD4"] ; + Test_Permutation_trans [label="Permutation_trans", URL=, fillcolor="#7FFFD4"] ; + Test_Permutation_sym [label="Permutation_sym", URL=, fillcolor="#7FFFD4"] ; + Test_Permutation_refl [label="Permutation_refl", URL=, fillcolor="#7FFFD4"] ; + Test_Permutation_nil_cons [label="Permutation_nil_cons", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_Permutation_nil [label="Permutation_nil", URL=, fillcolor="#7FFFD4"] ; + Test_Permutation_ind [label="Permutation_ind", URL=, fillcolor="#7FFFD4"] ; + Test_perm_trans [label="perm_trans", URL=, fillcolor="#7FAAFF"] ; + Test_perm_swap [label="perm_swap", URL=, fillcolor="#7FAAFF"] ; + Test_perm_skip [label="perm_skip", URL=, fillcolor="#7FAAFF"] ; + Test_perm_nil [label="perm_nil", URL=, fillcolor="#7FAAFF"] ; + Test_rev_ind [label="rev_ind", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_rev_list_ind [label="rev_list_ind", URL=, fillcolor="#7FFFD4"] ; + Test_rev_alt [label="rev_alt", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_rev_append_rev [label="rev_append_rev", URL=, fillcolor="#7FFFD4"] ; + Test_rev_nth [label="rev_nth", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_rev_length [label="rev_length", URL=, fillcolor="#7FFFD4"] ; + Test_In_rev [label="In_rev", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_rev_involutive [label="rev_involutive", URL=, fillcolor="#7FFFD4"] ; + Test_rev_unit [label="rev_unit", URL=, fillcolor="#7FFFD4"] ; + Test_distr_rev [label="distr_rev", URL=, fillcolor="#7FFFD4"] ; + Test_count_occ_cons_neq [label="count_occ_cons_neq", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_count_occ_cons_eq [label="count_occ_cons_eq", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_count_occ_nil [label="count_occ_nil", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_count_occ_inv_nil [label="count_occ_inv_nil", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_count_occ_In [label="count_occ_In", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_removelast_app -> Test_list_ind [] ; + Test_ReDun_NoDup_Permutation -> Test_ReDun_NoDup_remove_2 [] ; + Test_ReDun_NoDup_Permutation -> Test_ReDun_NoDup_remove_1 [] ; + Test_ReDun_NoDup_Permutation -> Test_Permutation_cons_app [] ; + Test_ReDun_NoDup_Permutation -> Test_In_split [] ; + Test_app_removelast_last -> Test_list_ind [] ; + Test_ReDun_NoDup_remove_2 -> Test_in_or_app [] ; + Test_ReDun_NoDup_remove_1 -> Test_ReDun_NoDup_cons [] ; + Test_ReDun_NoDup_remove_1 -> Test_in_or_app [] ; + Test_ReDun_NoDup_remove_1 -> Test_in_app_or [] ; + Test_remove_In -> Test_list_ind [] ; + Test_app_nth2 -> Test_list_ind [] ; + Test_app_nth1 -> Test_list_ind [] ; + Test_nth_indep -> Test_list_ind [] ; + Test_nth_overflow -> Test_list_ind [] ; + Test_firstn_removelast -> Test_removelast_app [] ; + Test_removelast_firstn -> Test_removelast_app [] ; + Test_app_inv_tail -> Test_app_length [] ; + Test_app_inv_head -> Test_list_ind [] ; + Test_incl_app -> Test_in_app_or [] ; + Test_in_or_app -> Test_list_ind [] ; + Test_in_app_or -> Test_list_ind [] ; + Test_incl_appr -> Test_in_or_app [] ; + Test_app_length -> Test_list_ind [] ; + Test_incl_appl -> Test_in_or_app [] ; + Test_app_inj_tail -> Test_app_cons_not_nil [] ; + Test_app_inj_tail -> Test_list_ind [] ; + Test_app_eq_unit -> Test_app_nil_end [] ; + Test_app_eq_unit -> Test_app_cons_not_nil [] ; + Test_incl_tl -> Test_in_cons [] ; + Test_ass_app -> Test_app_ass [] ; + Test_lel_nil -> Test_list_ind [] ; + Test_app_ass -> Test_list_ind [] ; + Test_app_nil_end -> Test_list_ind [] ; + Test_In_split -> Test_list_ind [] ; + Test_prod_length -> Test_map_length [] ; + Test_prod_length -> Test_app_length [] ; + Test_in_prod_iff -> Test_in_prod [] ; + Test_in_prod_iff -> Test_in_map_iff [] ; + Test_in_prod_iff -> Test_in_app_or [] ; + Test_in_prod -> Test_in_prod_aux [] ; + Test_in_prod -> Test_in_or_app [] ; + Test_in_prod_aux -> Test_list_ind [] ; + Test_combine_nth -> Test_list_ind [] ; + Test_combine_length -> Test_list_ind [] ; + Test_in_combine_r -> Test_list_ind [] ; + Test_in_combine_l -> Test_list_ind [] ; + Test_combine_split -> Test_list_ind [] ; + Test_split_combine -> Test_list_ind [] ; + Test_split_length_r -> Test_list_ind [] ; + Test_split_length_l -> Test_list_ind [] ; + Test_split_nth -> Test_list_ind [] ; + Test_in_split_r -> Test_list_ind [] ; + Test_in_split_l -> Test_list_ind [] ; + Test_filter_In -> Test_list_ind [] ; + Test_forallb_forall -> Test_list_ind [] ; + Test_existsb_nth -> Test_list_ind [] ; + Test_existsb_exists -> Test_list_ind [] ; + Test_fold_symmetric -> Test_list_ind [] ; + Test_fold_left_rev_right -> Test_fold_right_app [] ; + Test_fold_right_app -> Test_list_ind [] ; + Test_fold_left_length -> Test_list_ind [] ; + Test_fold_left_app -> Test_list_ind [] ; + Test_map_ext -> Test_list_ind [] ; + Test_map_map -> Test_list_ind [] ; + Test_in_flat_map -> Test_in_or_app [] ; + Test_in_flat_map -> Test_in_app_or [] ; + Test_Permutation_map -> Test_Permutation_ind [] ; + Test_Permutation_map -> Test_perm_trans [] ; + Test_Permutation_map -> Test_perm_swap [] ; + Test_Permutation_map -> Test_perm_skip [] ; + Test_Permutation_map -> Test_perm_nil [] ; + Test_map_rev -> Test_map_app [] ; + Test_map_app -> Test_list_ind [] ; + Test_map_nth -> Test_list_ind [] ; + Test_map_length -> Test_list_ind [] ; + Test_in_map_iff -> Test_list_ind [] ; + Test_in_map -> Test_list_ind [] ; + Test_Permutation_app_inv_r -> Test_Permutation_app_inv [] ; + Test_Permutation_app_inv_r -> Test_app_nil_end [] ; + Test_Permutation_app_inv_l -> Test_Permutation_cons_inv [] ; + Test_Permutation_cons_app_inv -> Test_Permutation_app_inv [] ; + Test_Permutation_cons_inv -> Test_Permutation_app_inv [] ; + Test_Permutation_app_inv -> Test_Permutation_ind_bis [] ; + Test_Permutation_app_inv -> Test_Permutation_cons_app [] ; + Test_Permutation_app_inv -> Test_Permutation_in [] ; + Test_Permutation_app_inv -> Test_Permutation_sym [] ; + Test_Permutation_app_inv -> Test_in_or_app [] ; + Test_Permutation_app_inv -> Test_In_split [] ; + Test_Permutation_ind_bis -> Test_Permutation_refl [] ; + Test_Permutation_ind_bis -> Test_Permutation_ind [] ; + Test_Permutation_ind_bis -> Test_perm_swap [] ; + Test_Permutation_rev -> Test_Permutation_app_swap [] ; + Test_Permutation_length -> Test_Permutation_ind [] ; + Test_Permutation_cons_app -> Test_Permutation_refl [] ; + Test_Permutation_cons_app -> Test_perm_trans [] ; + Test_Permutation_cons_app -> Test_perm_swap [] ; + Test_Permutation_app_swap -> Test_Permutation_trans [] ; + Test_Permutation_app_swap -> Test_Permutation_sym [] ; + Test_Permutation_app_swap -> Test_Permutation_refl [] ; + Test_Permutation_app_swap -> Test_app_comm_cons [] ; + Test_Permutation_app_swap -> Test_app_nil_end [] ; + Test_Permutation_app -> Test_Permutation_app_head [] ; + Test_Permutation_app -> Test_Permutation_app_tail [] ; + Test_Permutation_app_head -> Test_perm_skip [] ; + Test_Permutation_app_head -> Test_app_comm_cons [] ; + Test_Permutation_app_head -> Test_list_ind [] ; + Test_Permutation_app_tail -> Test_Permutation_trans [] ; + Test_Permutation_app_tail -> Test_Permutation_sym [] ; + Test_Permutation_app_tail -> Test_Permutation_refl [] ; + Test_Permutation_in -> Test_Permutation_ind [] ; + Test_Permutation_trans -> Test_perm_trans [] ; + Test_Permutation_sym -> Test_Permutation_ind [] ; + Test_Permutation_sym -> Test_perm_trans [] ; + Test_Permutation_sym -> Test_perm_swap [] ; + Test_Permutation_sym -> Test_perm_skip [] ; + Test_Permutation_sym -> Test_perm_nil [] ; + Test_Permutation_refl -> Test_perm_skip [] ; + Test_Permutation_refl -> Test_perm_nil [] ; + Test_Permutation_refl -> Test_list_ind [] ; + Test_Permutation_nil_cons -> Test_Permutation_nil [] ; + Test_Permutation_nil -> Test_Permutation_ind [] ; + Test_Permutation_nil -> Test_nil_cons [] ; + Test_rev_ind -> Test_rev_list_ind [] ; + Test_rev_ind -> Test_rev_involutive [] ; + Test_rev_list_ind -> Test_list_ind [] ; + Test_rev_alt -> Test_rev_append_rev [] ; + Test_rev_alt -> Test_app_nil_end [] ; + Test_rev_append_rev -> Test_ass_app [] ; + Test_rev_nth -> Test_rev_length [] ; + Test_rev_nth -> Test_app_nth2 [] ; + Test_rev_nth -> Test_app_nth1 [] ; + Test_rev_length -> Test_app_length [] ; + Test_In_rev -> Test_in_or_app [] ; + Test_In_rev -> Test_in_app_or [] ; + Test_rev_involutive -> Test_rev_unit [] ; + Test_rev_unit -> Test_distr_rev [] ; + Test_distr_rev -> Test_app_ass [] ; + Test_distr_rev -> Test_app_nil_end [] ; + Test_count_occ_inv_nil -> Test_list_ind [] ; + Test_count_occ_In -> Test_list_ind [] ; + subgraph cluster_Test { label="Test"; fillcolor="#FFFFC3"; labeljust=l; style=filled + subgraph cluster_Test_ReDun { label="ReDun"; fillcolor="#FFFFA3"; labeljust=l; style=filled + Test_ReDun_NoDup_nil; Test_ReDun_NoDup_cons; Test_ReDun_NoDup_ind; Test_ReDun_NoDup_remove_1; Test_ReDun_NoDup_remove_2; Test_ReDun_NoDup_Permutation; }; + Test_count_occ_In; Test_count_occ_inv_nil; Test_count_occ_nil; Test_count_occ_cons_eq; Test_count_occ_cons_neq; Test_distr_rev; Test_rev_unit; Test_rev_involutive; Test_In_rev; Test_rev_length; Test_rev_nth; Test_rev_append_rev; Test_rev_alt; Test_rev_list_ind; Test_rev_ind; Test_perm_nil; Test_perm_skip; Test_perm_swap; Test_perm_trans; Test_Permutation_ind; Test_Permutation_nil; Test_Permutation_nil_cons; Test_Permutation_refl; Test_Permutation_sym; Test_Permutation_trans; Test_Permutation_in; Test_Permutation_app_tail; Test_Permutation_app_head; Test_Permutation_app; Test_Permutation_app_swap; Test_Permutation_cons_app; Test_Permutation_length; Test_Permutation_rev; Test_Permutation_ind_bis; Test_Permutation_app_inv; Test_Permutation_cons_inv; Test_Permutation_cons_app_inv; Test_Permutation_app_inv_l; Test_Permutation_app_inv_r; Test_in_map; Test_in_map_iff; Test_map_length; Test_map_nth; Test_map_app; Test_map_rev; Test_Permutation_map; Test_in_flat_map; Test_map_map; Test_map_ext; Test_fold_left_app; Test_fold_left_length; Test_fold_right_app; Test_fold_left_rev_right; Test_fold_symmetric; Test_existsb_exists; Test_existsb_nth; Test_forallb_forall; Test_filter_In; Test_in_split_l; Test_list_ind; Test_in_split_r; Test_split_nth; Test_split_length_l; Test_split_length_r; Test_split_combine; Test_combine_split; Test_in_combine_l; Test_size_nil; Test_in_combine_r; Test_combine_length; Test_combine_nth; Test_nil_cons; Test_head_nil; Test_in_prod_aux; Test_head_cons; Test_in_prod; Test_in_eq; Test_in_prod_iff; Test_in_cons; Test_prod_length; Test_in_nil; Test_In_split; Test_lel_refl; Test_in_inv; Test_lel_trans; Test_lel_cons_cons; Test_app_cons_not_nil; Test_lel_cons; Test_app_nil_end; Test_lel_tail; Test_app_ass; Test_lel_nil; Test_ass_app; Test_app_comm_cons; Test_incl_refl; Test_app_eq_nil; Test_incl_tl; Test_app_eq_unit; Test_incl_tran; Test_app_inj_tail; Test_incl_appl; Test_app_length; Test_incl_appr; Test_in_app_or; Test_incl_cons; Test_in_or_app; Test_incl_app; Test_app_inv_head; Test_app_inv_tail; Test_firstn_skipn; Test_firstn_length; Test_removelast_firstn; Test_firstn_removelast; Test_nth_S_cons; Test_seq_length; Test_nth_In; Test_seq_nth; Test_nth_overflow; Test_seq_shift; Test_nth_indep; Test_app_nth1; Test_app_nth2; Test_remove_In; Test_app_removelast_last; Test_removelast_app; }; + } /* END */ + + $ cat graph2.dpd + N: 184 "Permutation_app_swap" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 205 "Permutation_ind" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 188 "Permutation_refl" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 185 "Permutation_sym" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 192 "Permutation_trans" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 193 "app" [body=yes, kind=cnst, prop=no, path="Test", ]; + N: 187 "app_comm_cons" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 186 "app_nil_end" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 190 "eq_ind" [body=yes, kind=cnst, prop=yes, ]; + N: 191 "eq_ind_r" [body=yes, kind=cnst, prop=yes, ]; + N: 201 "eq_sym" [body=yes, kind=cnst, prop=yes, ]; + N: 189 "list_ind" [body=yes, kind=cnst, prop=yes, path="Test", ]; + N: 194 "Permutation" [kind=inductive, prop=no, path="Test", ]; + N: 202 "eq" [kind=inductive, prop=no, ]; + N: 195 "list" [kind=inductive, prop=no, path="Test", ]; + N: 204 "perm_nil" [kind=construct, prop=yes, path="Test", ]; + N: 203 "eq_refl" [kind=construct, prop=yes, ]; + N: 198 "nil" [kind=construct, prop=no, path="Test", ]; + N: 196 "perm_skip" [kind=construct, prop=yes, path="Test", ]; + N: 199 "cons" [kind=construct, prop=no, path="Test", ]; + N: 197 "perm_swap" [kind=construct, prop=yes, path="Test", ]; + N: 200 "perm_trans" [kind=construct, prop=yes, path="Test", ]; + E: 184 185 [weight=3, ]; + E: 184 186 [weight=2, ]; + E: 184 187 [weight=1, ]; + E: 184 188 [weight=2, ]; + E: 184 189 [weight=2, ]; + E: 184 190 [weight=2, ]; + E: 184 191 [weight=1, ]; + E: 184 192 [weight=3, ]; + E: 184 193 [weight=43, ]; + E: 184 194 [weight=11, ]; + E: 184 195 [weight=18, ]; + E: 184 196 [weight=3, ]; + E: 184 197 [weight=1, ]; + E: 184 198 [weight=6, ]; + E: 184 199 [weight=42, ]; + E: 185 194 [weight=10, ]; + E: 185 195 [weight=12, ]; + E: 185 196 [weight=1, ]; + E: 185 197 [weight=1, ]; + E: 185 200 [weight=1, ]; + E: 185 204 [weight=1, ]; + E: 185 205 [weight=1, ]; + E: 186 189 [weight=1, ]; + E: 186 190 [weight=1, ]; + E: 186 193 [weight=6, ]; + E: 186 195 [weight=14, ]; + E: 186 198 [weight=9, ]; + E: 186 199 [weight=5, ]; + E: 186 202 [weight=6, ]; + E: 186 203 [weight=2, ]; + E: 187 193 [weight=3, ]; + E: 187 195 [weight=6, ]; + E: 187 199 [weight=3, ]; + E: 187 202 [weight=1, ]; + E: 187 203 [weight=1, ]; + E: 188 189 [weight=1, ]; + E: 188 194 [weight=3, ]; + E: 188 195 [weight=4, ]; + E: 188 196 [weight=1, ]; + E: 188 204 [weight=1, ]; + E: 189 195 [weight=8, ]; + E: 189 198 [weight=2, ]; + E: 189 199 [weight=2, ]; + E: 190 202 [weight=3, ]; + E: 191 190 [weight=1, ]; + E: 191 201 [weight=1, ]; + E: 191 202 [weight=2, ]; + E: 192 194 [weight=3, ]; + E: 192 195 [weight=3, ]; + E: 192 200 [weight=1, ]; + E: 193 195 [weight=10, ]; + E: 193 199 [weight=1, ]; + E: 194 195 [weight=6, ]; + E: 194 198 [weight=2, ]; + E: 194 199 [weight=6, ]; + E: 196 195 [weight=6, ]; + E: 196 198 [weight=2, ]; + E: 196 199 [weight=6, ]; + E: 197 195 [weight=6, ]; + E: 197 198 [weight=2, ]; + E: 197 199 [weight=6, ]; + E: 200 195 [weight=6, ]; + E: 200 198 [weight=2, ]; + E: 200 199 [weight=6, ]; + E: 201 202 [weight=5, ]; + E: 201 203 [weight=1, ]; + E: 204 195 [weight=6, ]; + E: 204 198 [weight=2, ]; + E: 204 199 [weight=6, ]; + E: 205 194 [weight=10, ]; + E: 205 195 [weight=22, ]; + E: 205 198 [weight=4, ]; + E: 205 199 [weight=12, ]; + + $ dpd2dot graph2.dpd + Info: read file graph2.dpd + Info: Graph output in graph2.dot + + $ cat graph2.dot + digraph graph2 { + graph [ratio=0.5] + node [style=filled] + Test_Permutation_app_swap [label="Permutation_app_swap", URL=, peripheries=3, fillcolor="#7FFFD4"] ; + Test_Permutation_sym [label="Permutation_sym", URL=, fillcolor="#7FFFD4"] ; + Test_app_nil_end [label="app_nil_end", URL=, fillcolor="#7FFFD4"] ; + Test_app_comm_cons [label="app_comm_cons", URL=, fillcolor="#7FFFD4"] ; + Test_Permutation_refl [label="Permutation_refl", URL=, fillcolor="#7FFFD4"] ; + Test_list_ind [label="list_ind", URL=, fillcolor="#7FFFD4"] ; + _eq_ind [label="eq_ind", URL=<.html#eq_ind>, fillcolor="#7FFFD4"] ; + _eq_ind_r [label="eq_ind_r", URL=<.html#eq_ind_r>, fillcolor="#7FFFD4"] ; + Test_Permutation_trans [label="Permutation_trans", URL=, fillcolor="#7FFFD4"] ; + Test_app [label="app", URL=, fillcolor="#F070D1"] ; + Test_Permutation [label="Permutation", URL=, fillcolor="#E2CDFA"] ; + Test_list [label="list", URL=, fillcolor="#E2CDFA"] ; + Test_perm_skip [label="perm_skip", URL=, fillcolor="#7FAAFF"] ; + Test_perm_swap [label="perm_swap", URL=, fillcolor="#7FAAFF"] ; + Test_nil [label="nil", URL=, fillcolor="#7FAAFF"] ; + Test_cons [label="cons", URL=, fillcolor="#7FAAFF"] ; + Test_perm_trans [label="perm_trans", URL=, fillcolor="#7FAAFF"] ; + _eq_sym [label="eq_sym", URL=<.html#eq_sym>, fillcolor="#7FFFD4"] ; + _eq [label="eq", URL=<.html#eq>, fillcolor="#E2CDFA"] ; + _eq_refl [label="eq_refl", URL=<.html#eq_refl>, fillcolor="#7FAAFF"] ; + Test_perm_nil [label="perm_nil", URL=, fillcolor="#7FAAFF"] ; + Test_Permutation_ind [label="Permutation_ind", URL=, fillcolor="#7FFFD4"] ; + Test_Permutation_app_swap -> Test_Permutation_sym [] ; + Test_Permutation_app_swap -> Test_app_nil_end [] ; + Test_Permutation_app_swap -> Test_app_comm_cons [] ; + Test_Permutation_app_swap -> Test_Permutation_refl [] ; + Test_Permutation_app_swap -> _eq_ind_r [] ; + Test_Permutation_app_swap -> Test_Permutation_trans [] ; + Test_Permutation_sym -> Test_perm_skip [] ; + Test_Permutation_sym -> Test_perm_swap [] ; + Test_Permutation_sym -> Test_perm_trans [] ; + Test_Permutation_sym -> Test_perm_nil [] ; + Test_Permutation_sym -> Test_Permutation_ind [] ; + Test_app_nil_end -> Test_list_ind [] ; + Test_app_nil_end -> _eq_ind [] ; + Test_app_nil_end -> Test_app [] ; + Test_app_nil_end -> _eq_refl [] ; + Test_app_comm_cons -> Test_app [] ; + Test_app_comm_cons -> _eq [] ; + Test_app_comm_cons -> _eq_refl [] ; + Test_Permutation_refl -> Test_list_ind [] ; + Test_Permutation_refl -> Test_Permutation [] ; + Test_Permutation_refl -> Test_perm_skip [] ; + Test_Permutation_refl -> Test_perm_nil [] ; + Test_list_ind -> Test_list [] ; + Test_list_ind -> Test_nil [] ; + Test_list_ind -> Test_cons [] ; + _eq_ind -> _eq [] ; + _eq_ind_r -> _eq_ind [] ; + _eq_ind_r -> _eq_sym [] ; + Test_Permutation_trans -> Test_Permutation [] ; + Test_Permutation_trans -> Test_perm_trans [] ; + Test_app -> Test_list [] ; + Test_app -> Test_cons [] ; + Test_Permutation -> Test_list [] ; + Test_Permutation -> Test_nil [] ; + Test_Permutation -> Test_cons [] ; + Test_perm_skip -> Test_list [] ; + Test_perm_skip -> Test_nil [] ; + Test_perm_skip -> Test_cons [] ; + Test_perm_swap -> Test_list [] ; + Test_perm_swap -> Test_nil [] ; + Test_perm_swap -> Test_cons [] ; + Test_perm_trans -> Test_list [] ; + Test_perm_trans -> Test_nil [] ; + Test_perm_trans -> Test_cons [] ; + _eq_sym -> _eq [] ; + _eq_sym -> _eq_refl [] ; + Test_perm_nil -> Test_list [] ; + Test_perm_nil -> Test_nil [] ; + Test_perm_nil -> Test_cons [] ; + Test_Permutation_ind -> Test_Permutation [] ; + subgraph cluster_Test { label="Test"; fillcolor="#FFFFC3"; labeljust=l; style=filled + Test_Permutation_ind; Test_perm_nil; Test_perm_trans; Test_cons; Test_nil; Test_perm_swap; Test_perm_skip; Test_list; Test_Permutation; Test_app; Test_Permutation_trans; Test_list_ind; Test_Permutation_refl; Test_app_comm_cons; Test_app_nil_end; Test_Permutation_sym; Test_Permutation_app_swap; }; + } /* END */ + + $ dpdusage graph2.dpd + Info: read file graph2.dpd + Test:Permutation_app_swap (0) diff --git a/tests/graph.without.dot.oracle b/tests/graph.without.dot.oracle deleted file mode 100644 index 632fd7594..000000000 --- a/tests/graph.without.dot.oracle +++ /dev/null @@ -1,280 +0,0 @@ -digraph tests/graph { - graph [ratio=0.5] - node [style=filled] -Test_removelast_app [label="removelast_app", URL=, fillcolor="#7FFFD4"] ; -Test_ReDun_NoDup_Permutation [label="NoDup_Permutation", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_app_removelast_last [label="app_removelast_last", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_ReDun_NoDup_remove_2 [label="NoDup_remove_2", URL=, fillcolor="#7FFFD4"] ; -Test_ReDun_NoDup_remove_1 [label="NoDup_remove_1", URL=, fillcolor="#7FFFD4"] ; -Test_remove_In [label="remove_In", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_ReDun_NoDup_ind [label="NoDup_ind", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_ReDun_NoDup_cons [label="NoDup_cons", URL=, fillcolor="#7FAAFF"] ; -Test_ReDun_NoDup_nil [label="NoDup_nil", URL=, peripheries=3, fillcolor="#7FAAFF"] ; -Test_app_nth2 [label="app_nth2", URL=, fillcolor="#7FFFD4"] ; -Test_app_nth1 [label="app_nth1", URL=, fillcolor="#7FFFD4"] ; -Test_nth_indep [label="nth_indep", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_seq_shift [label="seq_shift", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_nth_overflow [label="nth_overflow", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_seq_nth [label="seq_nth", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_nth_In [label="nth_In", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_seq_length [label="seq_length", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_nth_S_cons [label="nth_S_cons", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_firstn_removelast [label="firstn_removelast", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_removelast_firstn [label="removelast_firstn", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_firstn_length [label="firstn_length", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_firstn_skipn [label="firstn_skipn", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_app_inv_tail [label="app_inv_tail", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_app_inv_head [label="app_inv_head", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_incl_app [label="incl_app", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_in_or_app [label="in_or_app", URL=, fillcolor="#7FFFD4"] ; -Test_incl_cons [label="incl_cons", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_in_app_or [label="in_app_or", URL=, fillcolor="#7FFFD4"] ; -Test_incl_appr [label="incl_appr", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_app_length [label="app_length", URL=, fillcolor="#7FFFD4"] ; -Test_incl_appl [label="incl_appl", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_app_inj_tail [label="app_inj_tail", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_incl_tran [label="incl_tran", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_app_eq_unit [label="app_eq_unit", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_incl_tl [label="incl_tl", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_app_eq_nil [label="app_eq_nil", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_incl_refl [label="incl_refl", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_app_comm_cons [label="app_comm_cons", URL=, fillcolor="#7FFFD4"] ; -Test_ass_app [label="ass_app", URL=, fillcolor="#7FFFD4"] ; -Test_lel_nil [label="lel_nil", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_app_ass [label="app_ass", URL=, fillcolor="#7FFFD4"] ; -Test_lel_tail [label="lel_tail", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_app_nil_end [label="app_nil_end", URL=, fillcolor="#7FFFD4"] ; -Test_lel_cons [label="lel_cons", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_app_cons_not_nil [label="app_cons_not_nil", URL=, fillcolor="#7FFFD4"] ; -Test_lel_cons_cons [label="lel_cons_cons", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_lel_trans [label="lel_trans", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_in_inv [label="in_inv", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_lel_refl [label="lel_refl", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_In_split [label="In_split", URL=, fillcolor="#7FFFD4"] ; -Test_in_nil [label="in_nil", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_prod_length [label="prod_length", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_in_cons [label="in_cons", URL=, fillcolor="#7FFFD4"] ; -Test_in_prod_iff [label="in_prod_iff", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_in_eq [label="in_eq", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_in_prod [label="in_prod", URL=, fillcolor="#7FFFD4"] ; -Test_head_cons [label="head_cons", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_in_prod_aux [label="in_prod_aux", URL=, fillcolor="#7FFFD4"] ; -Test_head_nil [label="head_nil", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_nil_cons [label="nil_cons", URL=, fillcolor="#7FFFD4"] ; -Test_combine_nth [label="combine_nth", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_combine_length [label="combine_length", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_in_combine_r [label="in_combine_r", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_size_nil [label="size_nil", URL=, peripheries=3, fillcolor="#FFB57F"] ; -Test_in_combine_l [label="in_combine_l", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_combine_split [label="combine_split", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_split_combine [label="split_combine", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_split_length_r [label="split_length_r", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_split_length_l [label="split_length_l", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_split_nth [label="split_nth", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_in_split_r [label="in_split_r", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_list_ind [label="list_ind", URL=, fillcolor="#7FFFD4"] ; -Test_in_split_l [label="in_split_l", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_filter_In [label="filter_In", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_forallb_forall [label="forallb_forall", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_existsb_nth [label="existsb_nth", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_existsb_exists [label="existsb_exists", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_fold_symmetric [label="fold_symmetric", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_fold_left_rev_right [label="fold_left_rev_right", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_fold_right_app [label="fold_right_app", URL=, fillcolor="#7FFFD4"] ; -Test_fold_left_length [label="fold_left_length", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_fold_left_app [label="fold_left_app", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_map_ext [label="map_ext", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_map_map [label="map_map", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_in_flat_map [label="in_flat_map", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_Permutation_map [label="Permutation_map", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_map_rev [label="map_rev", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_map_app [label="map_app", URL=, fillcolor="#7FFFD4"] ; -Test_map_nth [label="map_nth", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_map_length [label="map_length", URL=, fillcolor="#7FFFD4"] ; -Test_in_map_iff [label="in_map_iff", URL=, fillcolor="#7FFFD4"] ; -Test_in_map [label="in_map", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_Permutation_app_inv_r [label="Permutation_app_inv_r", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_Permutation_app_inv_l [label="Permutation_app_inv_l", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_Permutation_cons_app_inv [label="Permutation_cons_app_inv", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_Permutation_cons_inv [label="Permutation_cons_inv", URL=, fillcolor="#7FFFD4"] ; -Test_Permutation_app_inv [label="Permutation_app_inv", URL=, fillcolor="#7FFFD4"] ; -Test_Permutation_ind_bis [label="Permutation_ind_bis", URL=, fillcolor="#7FFFD4"] ; -Test_Permutation_rev [label="Permutation_rev", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_Permutation_length [label="Permutation_length", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_Permutation_cons_app [label="Permutation_cons_app", URL=, fillcolor="#7FFFD4"] ; -Test_Permutation_app_swap [label="Permutation_app_swap", URL=, fillcolor="#7FFFD4"] ; -Test_Permutation_app [label="Permutation_app", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_Permutation_app_head [label="Permutation_app_head", URL=, fillcolor="#7FFFD4"] ; -Test_Permutation_app_tail [label="Permutation_app_tail", URL=, fillcolor="#7FFFD4"] ; -Test_Permutation_in [label="Permutation_in", URL=, fillcolor="#7FFFD4"] ; -Test_Permutation_trans [label="Permutation_trans", URL=, fillcolor="#7FFFD4"] ; -Test_Permutation_sym [label="Permutation_sym", URL=, fillcolor="#7FFFD4"] ; -Test_Permutation_refl [label="Permutation_refl", URL=, fillcolor="#7FFFD4"] ; -Test_Permutation_nil_cons [label="Permutation_nil_cons", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_Permutation_nil [label="Permutation_nil", URL=, fillcolor="#7FFFD4"] ; -Test_Permutation_ind [label="Permutation_ind", URL=, fillcolor="#7FFFD4"] ; -Test_perm_trans [label="perm_trans", URL=, fillcolor="#7FAAFF"] ; -Test_perm_swap [label="perm_swap", URL=, fillcolor="#7FAAFF"] ; -Test_perm_skip [label="perm_skip", URL=, fillcolor="#7FAAFF"] ; -Test_perm_nil [label="perm_nil", URL=, fillcolor="#7FAAFF"] ; -Test_rev_ind [label="rev_ind", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_rev_list_ind [label="rev_list_ind", URL=, fillcolor="#7FFFD4"] ; -Test_rev_alt [label="rev_alt", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_rev_append_rev [label="rev_append_rev", URL=, fillcolor="#7FFFD4"] ; -Test_rev_nth [label="rev_nth", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_rev_length [label="rev_length", URL=, fillcolor="#7FFFD4"] ; -Test_In_rev [label="In_rev", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_rev_involutive [label="rev_involutive", URL=, fillcolor="#7FFFD4"] ; -Test_rev_unit [label="rev_unit", URL=, fillcolor="#7FFFD4"] ; -Test_distr_rev [label="distr_rev", URL=, fillcolor="#7FFFD4"] ; -Test_count_occ_cons_neq [label="count_occ_cons_neq", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_count_occ_cons_eq [label="count_occ_cons_eq", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_count_occ_nil [label="count_occ_nil", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_count_occ_inv_nil [label="count_occ_inv_nil", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_count_occ_In [label="count_occ_In", URL=, peripheries=3, fillcolor="#7FFFD4"] ; - Test_removelast_app -> Test_list_ind [] ; - Test_ReDun_NoDup_Permutation -> Test_ReDun_NoDup_remove_2 [] ; - Test_ReDun_NoDup_Permutation -> Test_ReDun_NoDup_remove_1 [] ; - Test_ReDun_NoDup_Permutation -> Test_Permutation_cons_app [] ; - Test_ReDun_NoDup_Permutation -> Test_In_split [] ; - Test_app_removelast_last -> Test_list_ind [] ; - Test_ReDun_NoDup_remove_2 -> Test_in_or_app [] ; - Test_ReDun_NoDup_remove_1 -> Test_ReDun_NoDup_cons [] ; - Test_ReDun_NoDup_remove_1 -> Test_in_or_app [] ; - Test_ReDun_NoDup_remove_1 -> Test_in_app_or [] ; - Test_remove_In -> Test_list_ind [] ; - Test_app_nth2 -> Test_list_ind [] ; - Test_app_nth1 -> Test_list_ind [] ; - Test_nth_indep -> Test_list_ind [] ; - Test_nth_overflow -> Test_list_ind [] ; - Test_firstn_removelast -> Test_removelast_app [] ; - Test_removelast_firstn -> Test_removelast_app [] ; - Test_app_inv_tail -> Test_app_length [] ; - Test_app_inv_head -> Test_list_ind [] ; - Test_incl_app -> Test_in_app_or [] ; - Test_in_or_app -> Test_list_ind [] ; - Test_in_app_or -> Test_list_ind [] ; - Test_incl_appr -> Test_in_or_app [] ; - Test_app_length -> Test_list_ind [] ; - Test_incl_appl -> Test_in_or_app [] ; - Test_app_inj_tail -> Test_app_cons_not_nil [] ; - Test_app_inj_tail -> Test_list_ind [] ; - Test_app_eq_unit -> Test_app_nil_end [] ; - Test_app_eq_unit -> Test_app_cons_not_nil [] ; - Test_incl_tl -> Test_in_cons [] ; - Test_ass_app -> Test_app_ass [] ; - Test_lel_nil -> Test_list_ind [] ; - Test_app_ass -> Test_list_ind [] ; - Test_app_nil_end -> Test_list_ind [] ; - Test_In_split -> Test_list_ind [] ; - Test_prod_length -> Test_map_length [] ; - Test_prod_length -> Test_app_length [] ; - Test_in_prod_iff -> Test_in_prod [] ; - Test_in_prod_iff -> Test_in_map_iff [] ; - Test_in_prod_iff -> Test_in_app_or [] ; - Test_in_prod -> Test_in_prod_aux [] ; - Test_in_prod -> Test_in_or_app [] ; - Test_in_prod_aux -> Test_list_ind [] ; - Test_combine_nth -> Test_list_ind [] ; - Test_combine_length -> Test_list_ind [] ; - Test_in_combine_r -> Test_list_ind [] ; - Test_in_combine_l -> Test_list_ind [] ; - Test_combine_split -> Test_list_ind [] ; - Test_split_combine -> Test_list_ind [] ; - Test_split_length_r -> Test_list_ind [] ; - Test_split_length_l -> Test_list_ind [] ; - Test_split_nth -> Test_list_ind [] ; - Test_in_split_r -> Test_list_ind [] ; - Test_in_split_l -> Test_list_ind [] ; - Test_filter_In -> Test_list_ind [] ; - Test_forallb_forall -> Test_list_ind [] ; - Test_existsb_nth -> Test_list_ind [] ; - Test_existsb_exists -> Test_list_ind [] ; - Test_fold_symmetric -> Test_list_ind [] ; - Test_fold_left_rev_right -> Test_fold_right_app [] ; - Test_fold_right_app -> Test_list_ind [] ; - Test_fold_left_length -> Test_list_ind [] ; - Test_fold_left_app -> Test_list_ind [] ; - Test_map_ext -> Test_list_ind [] ; - Test_map_map -> Test_list_ind [] ; - Test_in_flat_map -> Test_in_or_app [] ; - Test_in_flat_map -> Test_in_app_or [] ; - Test_Permutation_map -> Test_Permutation_ind [] ; - Test_Permutation_map -> Test_perm_trans [] ; - Test_Permutation_map -> Test_perm_swap [] ; - Test_Permutation_map -> Test_perm_skip [] ; - Test_Permutation_map -> Test_perm_nil [] ; - Test_map_rev -> Test_map_app [] ; - Test_map_app -> Test_list_ind [] ; - Test_map_nth -> Test_list_ind [] ; - Test_map_length -> Test_list_ind [] ; - Test_in_map_iff -> Test_list_ind [] ; - Test_in_map -> Test_list_ind [] ; - Test_Permutation_app_inv_r -> Test_Permutation_app_inv [] ; - Test_Permutation_app_inv_r -> Test_app_nil_end [] ; - Test_Permutation_app_inv_l -> Test_Permutation_cons_inv [] ; - Test_Permutation_cons_app_inv -> Test_Permutation_app_inv [] ; - Test_Permutation_cons_inv -> Test_Permutation_app_inv [] ; - Test_Permutation_app_inv -> Test_Permutation_ind_bis [] ; - Test_Permutation_app_inv -> Test_Permutation_cons_app [] ; - Test_Permutation_app_inv -> Test_Permutation_in [] ; - Test_Permutation_app_inv -> Test_Permutation_sym [] ; - Test_Permutation_app_inv -> Test_in_or_app [] ; - Test_Permutation_app_inv -> Test_In_split [] ; - Test_Permutation_ind_bis -> Test_Permutation_refl [] ; - Test_Permutation_ind_bis -> Test_Permutation_ind [] ; - Test_Permutation_ind_bis -> Test_perm_swap [] ; - Test_Permutation_rev -> Test_Permutation_app_swap [] ; - Test_Permutation_length -> Test_Permutation_ind [] ; - Test_Permutation_cons_app -> Test_Permutation_refl [] ; - Test_Permutation_cons_app -> Test_perm_trans [] ; - Test_Permutation_cons_app -> Test_perm_swap [] ; - Test_Permutation_app_swap -> Test_Permutation_trans [] ; - Test_Permutation_app_swap -> Test_Permutation_sym [] ; - Test_Permutation_app_swap -> Test_Permutation_refl [] ; - Test_Permutation_app_swap -> Test_app_comm_cons [] ; - Test_Permutation_app_swap -> Test_app_nil_end [] ; - Test_Permutation_app -> Test_Permutation_app_head [] ; - Test_Permutation_app -> Test_Permutation_app_tail [] ; - Test_Permutation_app_head -> Test_perm_skip [] ; - Test_Permutation_app_head -> Test_app_comm_cons [] ; - Test_Permutation_app_head -> Test_list_ind [] ; - Test_Permutation_app_tail -> Test_Permutation_trans [] ; - Test_Permutation_app_tail -> Test_Permutation_sym [] ; - Test_Permutation_app_tail -> Test_Permutation_refl [] ; - Test_Permutation_in -> Test_Permutation_ind [] ; - Test_Permutation_trans -> Test_perm_trans [] ; - Test_Permutation_sym -> Test_Permutation_ind [] ; - Test_Permutation_sym -> Test_perm_trans [] ; - Test_Permutation_sym -> Test_perm_swap [] ; - Test_Permutation_sym -> Test_perm_skip [] ; - Test_Permutation_sym -> Test_perm_nil [] ; - Test_Permutation_refl -> Test_perm_skip [] ; - Test_Permutation_refl -> Test_perm_nil [] ; - Test_Permutation_refl -> Test_list_ind [] ; - Test_Permutation_nil_cons -> Test_Permutation_nil [] ; - Test_Permutation_nil -> Test_Permutation_ind [] ; - Test_Permutation_nil -> Test_nil_cons [] ; - Test_rev_ind -> Test_rev_list_ind [] ; - Test_rev_ind -> Test_rev_involutive [] ; - Test_rev_list_ind -> Test_list_ind [] ; - Test_rev_alt -> Test_rev_append_rev [] ; - Test_rev_alt -> Test_app_nil_end [] ; - Test_rev_append_rev -> Test_ass_app [] ; - Test_rev_nth -> Test_rev_length [] ; - Test_rev_nth -> Test_app_nth2 [] ; - Test_rev_nth -> Test_app_nth1 [] ; - Test_rev_length -> Test_app_length [] ; - Test_In_rev -> Test_in_or_app [] ; - Test_In_rev -> Test_in_app_or [] ; - Test_rev_involutive -> Test_rev_unit [] ; - Test_rev_unit -> Test_distr_rev [] ; - Test_distr_rev -> Test_app_ass [] ; - Test_distr_rev -> Test_app_nil_end [] ; - Test_count_occ_inv_nil -> Test_list_ind [] ; - Test_count_occ_In -> Test_list_ind [] ; -subgraph cluster_Test { label="Test"; fillcolor="#FFFFC3"; labeljust=l; style=filled -subgraph cluster_Test_ReDun { label="ReDun"; fillcolor="#FFFFA3"; labeljust=l; style=filled -Test_ReDun_NoDup_nil; Test_ReDun_NoDup_cons; Test_ReDun_NoDup_ind; Test_ReDun_NoDup_remove_1; Test_ReDun_NoDup_remove_2; Test_ReDun_NoDup_Permutation; }; -Test_count_occ_In; Test_count_occ_inv_nil; Test_count_occ_nil; Test_count_occ_cons_eq; Test_count_occ_cons_neq; Test_distr_rev; Test_rev_unit; Test_rev_involutive; Test_In_rev; Test_rev_length; Test_rev_nth; Test_rev_append_rev; Test_rev_alt; Test_rev_list_ind; Test_rev_ind; Test_perm_nil; Test_perm_skip; Test_perm_swap; Test_perm_trans; Test_Permutation_ind; Test_Permutation_nil; Test_Permutation_nil_cons; Test_Permutation_refl; Test_Permutation_sym; Test_Permutation_trans; Test_Permutation_in; Test_Permutation_app_tail; Test_Permutation_app_head; Test_Permutation_app; Test_Permutation_app_swap; Test_Permutation_cons_app; Test_Permutation_length; Test_Permutation_rev; Test_Permutation_ind_bis; Test_Permutation_app_inv; Test_Permutation_cons_inv; Test_Permutation_cons_app_inv; Test_Permutation_app_inv_l; Test_Permutation_app_inv_r; Test_in_map; Test_in_map_iff; Test_map_length; Test_map_nth; Test_map_app; Test_map_rev; Test_Permutation_map; Test_in_flat_map; Test_map_map; Test_map_ext; Test_fold_left_app; Test_fold_left_length; Test_fold_right_app; Test_fold_left_rev_right; Test_fold_symmetric; Test_existsb_exists; Test_existsb_nth; Test_forallb_forall; Test_filter_In; Test_in_split_l; Test_list_ind; Test_in_split_r; Test_split_nth; Test_split_length_l; Test_split_length_r; Test_split_combine; Test_combine_split; Test_in_combine_l; Test_size_nil; Test_in_combine_r; Test_combine_length; Test_combine_nth; Test_nil_cons; Test_head_nil; Test_in_prod_aux; Test_head_cons; Test_in_prod; Test_in_eq; Test_in_prod_iff; Test_in_cons; Test_prod_length; Test_in_nil; Test_In_split; Test_lel_refl; Test_in_inv; Test_lel_trans; Test_lel_cons_cons; Test_app_cons_not_nil; Test_lel_cons; Test_app_nil_end; Test_lel_tail; Test_app_ass; Test_lel_nil; Test_ass_app; Test_app_comm_cons; Test_incl_refl; Test_app_eq_nil; Test_incl_tl; Test_app_eq_unit; Test_incl_tran; Test_app_inj_tail; Test_incl_appl; Test_app_length; Test_incl_appr; Test_in_app_or; Test_incl_cons; Test_in_or_app; Test_incl_app; Test_app_inv_head; Test_app_inv_tail; Test_firstn_skipn; Test_firstn_length; Test_removelast_firstn; Test_firstn_removelast; Test_nth_S_cons; Test_seq_length; Test_nth_In; Test_seq_nth; Test_nth_overflow; Test_seq_shift; Test_nth_indep; Test_app_nth1; Test_app_nth2; Test_remove_In; Test_app_removelast_last; Test_removelast_app; }; -} /* END */ diff --git a/tests/graph2.dot.oracle b/tests/graph2.dot.oracle deleted file mode 100644 index 53b16808d..000000000 --- a/tests/graph2.dot.oracle +++ /dev/null @@ -1,78 +0,0 @@ -digraph tests/graph2 { - graph [ratio=0.5] - node [style=filled] -Test_Permutation_app_swap [label="Permutation_app_swap", URL=, peripheries=3, fillcolor="#7FFFD4"] ; -Test_Permutation_sym [label="Permutation_sym", URL=, fillcolor="#7FFFD4"] ; -Test_app_nil_end [label="app_nil_end", URL=, fillcolor="#7FFFD4"] ; -Test_app_comm_cons [label="app_comm_cons", URL=, fillcolor="#7FFFD4"] ; -Test_Permutation_refl [label="Permutation_refl", URL=, fillcolor="#7FFFD4"] ; -Test_list_ind [label="list_ind", URL=, fillcolor="#7FFFD4"] ; -_eq_ind [label="eq_ind", URL=<.html#eq_ind>, fillcolor="#7FFFD4"] ; -_eq_ind_r [label="eq_ind_r", URL=<.html#eq_ind_r>, fillcolor="#7FFFD4"] ; -Test_Permutation_trans [label="Permutation_trans", URL=, fillcolor="#7FFFD4"] ; -Test_app [label="app", URL=, fillcolor="#F070D1"] ; -Test_Permutation [label="Permutation", URL=, fillcolor="#E2CDFA"] ; -Test_list [label="list", URL=, fillcolor="#E2CDFA"] ; -Test_perm_skip [label="perm_skip", URL=, fillcolor="#7FAAFF"] ; -Test_perm_swap [label="perm_swap", URL=, fillcolor="#7FAAFF"] ; -Test_nil [label="nil", URL=, fillcolor="#7FAAFF"] ; -Test_cons [label="cons", URL=, fillcolor="#7FAAFF"] ; -Test_perm_trans [label="perm_trans", URL=, fillcolor="#7FAAFF"] ; -_eq_sym [label="eq_sym", URL=<.html#eq_sym>, fillcolor="#7FFFD4"] ; -_eq [label="eq", URL=<.html#eq>, fillcolor="#E2CDFA"] ; -_eq_refl [label="eq_refl", URL=<.html#eq_refl>, fillcolor="#7FAAFF"] ; -Test_perm_nil [label="perm_nil", URL=, fillcolor="#7FAAFF"] ; -Test_Permutation_ind [label="Permutation_ind", URL=, fillcolor="#7FFFD4"] ; - Test_Permutation_app_swap -> Test_Permutation_sym [] ; - Test_Permutation_app_swap -> Test_app_nil_end [] ; - Test_Permutation_app_swap -> Test_app_comm_cons [] ; - Test_Permutation_app_swap -> Test_Permutation_refl [] ; - Test_Permutation_app_swap -> _eq_ind_r [] ; - Test_Permutation_app_swap -> Test_Permutation_trans [] ; - Test_Permutation_sym -> Test_perm_skip [] ; - Test_Permutation_sym -> Test_perm_swap [] ; - Test_Permutation_sym -> Test_perm_trans [] ; - Test_Permutation_sym -> Test_perm_nil [] ; - Test_Permutation_sym -> Test_Permutation_ind [] ; - Test_app_nil_end -> Test_list_ind [] ; - Test_app_nil_end -> _eq_ind [] ; - Test_app_nil_end -> Test_app [] ; - Test_app_nil_end -> _eq_refl [] ; - Test_app_comm_cons -> Test_app [] ; - Test_app_comm_cons -> _eq [] ; - Test_app_comm_cons -> _eq_refl [] ; - Test_Permutation_refl -> Test_list_ind [] ; - Test_Permutation_refl -> Test_Permutation [] ; - Test_Permutation_refl -> Test_perm_skip [] ; - Test_Permutation_refl -> Test_perm_nil [] ; - Test_list_ind -> Test_list [] ; - Test_list_ind -> Test_nil [] ; - Test_list_ind -> Test_cons [] ; - _eq_ind -> _eq [] ; - _eq_ind_r -> _eq_ind [] ; - _eq_ind_r -> _eq_sym [] ; - Test_Permutation_trans -> Test_Permutation [] ; - Test_Permutation_trans -> Test_perm_trans [] ; - Test_app -> Test_list [] ; - Test_app -> Test_cons [] ; - Test_Permutation -> Test_list [] ; - Test_Permutation -> Test_nil [] ; - Test_Permutation -> Test_cons [] ; - Test_perm_skip -> Test_list [] ; - Test_perm_skip -> Test_nil [] ; - Test_perm_skip -> Test_cons [] ; - Test_perm_swap -> Test_list [] ; - Test_perm_swap -> Test_nil [] ; - Test_perm_swap -> Test_cons [] ; - Test_perm_trans -> Test_list [] ; - Test_perm_trans -> Test_nil [] ; - Test_perm_trans -> Test_cons [] ; - _eq_sym -> _eq [] ; - _eq_sym -> _eq_refl [] ; - Test_perm_nil -> Test_list [] ; - Test_perm_nil -> Test_nil [] ; - Test_perm_nil -> Test_cons [] ; - Test_Permutation_ind -> Test_Permutation [] ; -subgraph cluster_Test { label="Test"; fillcolor="#FFFFC3"; labeljust=l; style=filled -Test_Permutation_ind; Test_perm_nil; Test_perm_trans; Test_cons; Test_nil; Test_perm_swap; Test_perm_skip; Test_list; Test_Permutation; Test_app; Test_Permutation_trans; Test_list_ind; Test_Permutation_refl; Test_app_comm_cons; Test_app_nil_end; Test_Permutation_sym; Test_Permutation_app_swap; }; -} /* END */ diff --git a/tests/graph2.dpd.oracle b/tests/graph2.dpd.oracle deleted file mode 100644 index 9ed7afe72..000000000 --- a/tests/graph2.dpd.oracle +++ /dev/null @@ -1,95 +0,0 @@ -N: 184 "Permutation_app_swap" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 205 "Permutation_ind" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 188 "Permutation_refl" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 185 "Permutation_sym" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 192 "Permutation_trans" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 193 "app" [body=yes, kind=cnst, prop=no, path="Test", ]; -N: 187 "app_comm_cons" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 186 "app_nil_end" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 190 "eq_ind" [body=yes, kind=cnst, prop=yes, ]; -N: 191 "eq_ind_r" [body=yes, kind=cnst, prop=yes, ]; -N: 201 "eq_sym" [body=yes, kind=cnst, prop=yes, ]; -N: 189 "list_ind" [body=yes, kind=cnst, prop=yes, path="Test", ]; -N: 194 "Permutation" [kind=inductive, prop=no, path="Test", ]; -N: 202 "eq" [kind=inductive, prop=no, ]; -N: 195 "list" [kind=inductive, prop=no, path="Test", ]; -N: 204 "perm_nil" [kind=construct, prop=yes, path="Test", ]; -N: 203 "eq_refl" [kind=construct, prop=yes, ]; -N: 198 "nil" [kind=construct, prop=no, path="Test", ]; -N: 196 "perm_skip" [kind=construct, prop=yes, path="Test", ]; -N: 199 "cons" [kind=construct, prop=no, path="Test", ]; -N: 197 "perm_swap" [kind=construct, prop=yes, path="Test", ]; -N: 200 "perm_trans" [kind=construct, prop=yes, path="Test", ]; -E: 184 185 [weight=3, ]; -E: 184 186 [weight=2, ]; -E: 184 187 [weight=1, ]; -E: 184 188 [weight=2, ]; -E: 184 189 [weight=2, ]; -E: 184 190 [weight=2, ]; -E: 184 191 [weight=1, ]; -E: 184 192 [weight=3, ]; -E: 184 193 [weight=43, ]; -E: 184 194 [weight=11, ]; -E: 184 195 [weight=18, ]; -E: 184 196 [weight=3, ]; -E: 184 197 [weight=1, ]; -E: 184 198 [weight=6, ]; -E: 184 199 [weight=42, ]; -E: 185 194 [weight=10, ]; -E: 185 195 [weight=12, ]; -E: 185 196 [weight=1, ]; -E: 185 197 [weight=1, ]; -E: 185 200 [weight=1, ]; -E: 185 204 [weight=1, ]; -E: 185 205 [weight=1, ]; -E: 186 189 [weight=1, ]; -E: 186 190 [weight=1, ]; -E: 186 193 [weight=6, ]; -E: 186 195 [weight=14, ]; -E: 186 198 [weight=9, ]; -E: 186 199 [weight=5, ]; -E: 186 202 [weight=6, ]; -E: 186 203 [weight=2, ]; -E: 187 193 [weight=3, ]; -E: 187 195 [weight=6, ]; -E: 187 199 [weight=3, ]; -E: 187 202 [weight=1, ]; -E: 187 203 [weight=1, ]; -E: 188 189 [weight=1, ]; -E: 188 194 [weight=3, ]; -E: 188 195 [weight=4, ]; -E: 188 196 [weight=1, ]; -E: 188 204 [weight=1, ]; -E: 189 195 [weight=8, ]; -E: 189 198 [weight=2, ]; -E: 189 199 [weight=2, ]; -E: 190 202 [weight=3, ]; -E: 191 190 [weight=1, ]; -E: 191 201 [weight=1, ]; -E: 191 202 [weight=2, ]; -E: 192 194 [weight=3, ]; -E: 192 195 [weight=3, ]; -E: 192 200 [weight=1, ]; -E: 193 195 [weight=10, ]; -E: 193 199 [weight=1, ]; -E: 194 195 [weight=6, ]; -E: 194 198 [weight=2, ]; -E: 194 199 [weight=6, ]; -E: 196 195 [weight=6, ]; -E: 196 198 [weight=2, ]; -E: 196 199 [weight=6, ]; -E: 197 195 [weight=6, ]; -E: 197 198 [weight=2, ]; -E: 197 199 [weight=6, ]; -E: 200 195 [weight=6, ]; -E: 200 198 [weight=2, ]; -E: 200 199 [weight=6, ]; -E: 201 202 [weight=5, ]; -E: 201 203 [weight=1, ]; -E: 204 195 [weight=6, ]; -E: 204 198 [weight=2, ]; -E: 204 199 [weight=6, ]; -E: 205 194 [weight=10, ]; -E: 205 195 [weight=22, ]; -E: 205 198 [weight=4, ]; -E: 205 199 [weight=12, ]; diff --git a/tests/graph2.dpdusage.oracle b/tests/graph2.dpdusage.oracle deleted file mode 100644 index a3af0b8f3..000000000 --- a/tests/graph2.dpdusage.oracle +++ /dev/null @@ -1,2 +0,0 @@ -Info: read file tests/graph2.dpd -Test:Permutation_app_swap (0) diff --git a/tests/lexing.err.dpd b/tests/lexing.err.dpd deleted file mode 100644 index d89b530f7..000000000 --- a/tests/lexing.err.dpd +++ /dev/null @@ -1,5 +0,0 @@ -N: 1 "one"; -N: 2 "two" ! -N: 4 "four"; -E: 1 3; - diff --git a/tests/lexing.err.oracle b/tests/lexing.err.oracle deleted file mode 100644 index b6ee43a96..000000000 --- a/tests/lexing.err.oracle +++ /dev/null @@ -1,2 +0,0 @@ -Info: read file tests/lexing.err.dpd -Error: (line:2, character:11): illegal character '!'. diff --git a/tests/lexing.err.t b/tests/lexing.err.t new file mode 100644 index 000000000..f6fafd1b2 --- /dev/null +++ b/tests/lexing.err.t @@ -0,0 +1,10 @@ + $ cat > lexing.err.dpd << EOF + > N: 1 "one"; + > N: 2 "two" ! + > N: 4 "four"; + > E: 1 3; + > EOF + + $ dpd2dot lexing.err.dpd + Info: read file lexing.err.dpd + Error: (line:2, character:11): illegal character '!'. diff --git a/tests/missing_node.err.dpd b/tests/missing_node.err.dpd deleted file mode 100644 index 90c642377..000000000 --- a/tests/missing_node.err.dpd +++ /dev/null @@ -1,5 +0,0 @@ -N: 1 "one"; -N: 2 "two"; -N: 4 "four"; -E: 1 3; - diff --git a/tests/missing_node.err.oracle b/tests/missing_node.err.oracle deleted file mode 100644 index 795d2b22f..000000000 --- a/tests/missing_node.err.oracle +++ /dev/null @@ -1,2 +0,0 @@ -Info: read file tests/missing_node.err.dpd -Error: no node with number 3: cannot build edge. diff --git a/tests/missing_node.err.t b/tests/missing_node.err.t new file mode 100644 index 000000000..a923ab413 --- /dev/null +++ b/tests/missing_node.err.t @@ -0,0 +1,10 @@ + $ cat > missing_node.err.dpd << EOF + > N: 1 "one"; + > N: 2 "two"; + > N: 4 "four"; + > E: 1 3; + > EOF + + $ dpd2dot missing_node.err.dpd + Info: read file missing_node.err.dpd + Error: no node with number 3: cannot build edge. diff --git a/tests/parsing.err.dpd b/tests/parsing.err.dpd deleted file mode 100644 index 9e40f7c33..000000000 --- a/tests/parsing.err.dpd +++ /dev/null @@ -1,5 +0,0 @@ -N: 1 "one"; -N: 2 "two" xyz; -N: 4 "four"; -E: 1 3; - diff --git a/tests/parsing.err.oracle b/tests/parsing.err.oracle deleted file mode 100644 index 26d3a643c..000000000 --- a/tests/parsing.err.oracle +++ /dev/null @@ -1,2 +0,0 @@ -Info: read file tests/parsing.err.dpd -Error: parsing error (line:2, character:11-14). diff --git a/tests/parsing.err.t b/tests/parsing.err.t new file mode 100644 index 000000000..4ec246926 --- /dev/null +++ b/tests/parsing.err.t @@ -0,0 +1,10 @@ + $ cat > parsing.err.dpd << EOF + > N: 1 "one"; + > N: 2 "two" xyz; + > N: 4 "four"; + > E: 1 3; + > EOF + + $ dpd2dot parsing.err.dpd + Info: read file parsing.err.dpd + Error: parsing error (line:2, character:11-14). diff --git a/tests/search.oracle b/tests/search.oracle deleted file mode 100644 index 605f19805..000000000 --- a/tests/search.oracle +++ /dev/null @@ -1,6 +0,0 @@ -Welcome to Coq -[Loading ML file coq-dpdgraph.plugin ... done] -Fetching opaque proofs from disk for dpdgraph.tests.Test -[cons(42) nil(6) perm_swap(1) perm_skip(3) list(18) Permutation(11) app(43) -Permutation_trans(3) eq_ind_r(1) eq_ind(2) list_ind(2) Permutation_refl(2) -app_comm_cons(1) app_nil_end(2) Permutation_sym(3) ] diff --git a/tests/search.t b/tests/search.t new file mode 100644 index 000000000..b388f4d1c --- /dev/null +++ b/tests/search.t @@ -0,0 +1,24 @@ + $ coqc -R . dpdgraph.tests Test.v > /dev/null 2>&1 + + $ coqtop -R . dpdgraph.tests -R ../theories dpdgraph -I ../src < searchCmd.v | sed -e 's/Welcome to Coq.*/Welcome to Coq/' + + Coq < + Coq < Coq < Toplevel input, characters 1-21: + > Require Import Test. + > ^^^^^^^^^^^^^^^^^^^^ + Warning: Notation "_ :: _" was already used in scope list_scope. + [notation-overridden,parsing] + Toplevel input, characters 1-21: + > Require Import Test. + > ^^^^^^^^^^^^^^^^^^^^ + Warning: Notation "_ ++ _" was already used in scope list_scope. + [notation-overridden,parsing] + + Coq < Coq < + Coq < + Welcome to Coq + [Loading ML file coq-dpdgraph.plugin ... done] + Fetching opaque proofs from disk for dpdgraph.tests.Test + [cons(42) nil(6) perm_swap(1) perm_skip(3) list(18) Permutation(11) app(43) + Permutation_trans(3) eq_ind_r(1) eq_ind(2) list_ind(2) Permutation_refl(2) + app_comm_cons(1) app_nil_end(2) Permutation_sym(3) ] diff --git a/tests/search.cmd b/tests/searchCmd.v similarity index 100% rename from tests/search.cmd rename to tests/searchCmd.v diff --git a/tests/unterminated_comment.err.dpd b/tests/unterminated_comment.err.dpd deleted file mode 100644 index de4c1a299..000000000 --- a/tests/unterminated_comment.err.dpd +++ /dev/null @@ -1,5 +0,0 @@ -N: 1 "one"; -N: 2 "two"; -N: 4 "four"; /* -E: 1 3; - diff --git a/tests/unterminated_comment.err.oracle b/tests/unterminated_comment.err.oracle deleted file mode 100644 index b9961ce87..000000000 --- a/tests/unterminated_comment.err.oracle +++ /dev/null @@ -1,2 +0,0 @@ -Info: read file tests/unterminated_comment.err.dpd -Error: unterminated comment (started near (line:3, character:13)). diff --git a/tests/unterminated_comment.err.t b/tests/unterminated_comment.err.t new file mode 100644 index 000000000..7484ac896 --- /dev/null +++ b/tests/unterminated_comment.err.t @@ -0,0 +1,10 @@ + $ cat > unterminated_comment.err.dpd < N: 1 "one"; + > N: 2 "two"; + > N: 4 "four"; /* + > E: 1 3; + > EOF + + $ dpd2dot unterminated_comment.err.dpd + Info: read file unterminated_comment.err.dpd + Error: unterminated comment (started near (line:3, character:13)). diff --git a/dpdgraph.v b/theories/dpdgraph.v similarity index 100% rename from dpdgraph.v rename to theories/dpdgraph.v diff --git a/theories/dune b/theories/dune new file mode 100644 index 000000000..846a8aed8 --- /dev/null +++ b/theories/dune @@ -0,0 +1,6 @@ +(coq.theory + (name dpdgraph) + (package coq-dpdgraph) + (synopsis "Compute dependencies between Coq objects (definitions, theorems) and produce graphs") + (plugins coq-dpdgraph.plugin) + (flags :standard -w +default))