Skip to content

xamidi/pmGenerator

Repository files navigation

@xamidi/pmGenerator

DOI

This tool can collect exhaustive sets of condensed detachment proofs in D-N-notation and has various functions to display, analyze and utilize them. It can, for example, be used to generate improved versions of Metamath's “Shortest known proofs of the propositional calculus theorems from Principia Mathematica” collection.
The D-rule combines unification with modus ponens (⊢p,⊢Cpq ⇒ ⊢q), and there is an option to enable the N-rule (rule of necessitation; ⊢p ⇒ ⊢Lp), thus pmGenerator covers all syntactic consequences based on modus ponens and necessitation, each with a minimal proof, limited only by computing power.
Eligible for high-performance computing. If you have access to a powerful computer, you may use pmGenerator to further contribute to our knowledge regarding the complexity of proof systems. The following table exemplary shows progress that has already been made.

Frege's calculus simplified by Łukasiewicz (CpCqp,CCpCqrCCpqCpr,CCNpNqCqp)  [top1000] [cardinalities] [db] [customization info]
Files up to.. Paths   Size of Files   
[B]          
+Costs  
[≈core‑h]
RAM (load)
[≈GiB]    
RAM (gen.)
[≈GiB]    
Recent 
Growth
dProofs29.txt 111 735 676 962 1276.72 2.16 3.22 3.3613...
dProofs31‑unfiltered31+.txt 100 2 897 309 412 23.19 5.78 12.54 4.1833...
dProofs31.txt 011 2 477 015 626 12681.68 5.00 12.51 3.3699...
dProofs33‑unfiltered31+.txt 100 11 246 333 287 86.59 19.49 43.73 3.8623...
dProofs33‑unfiltered33+.txt 010 10 192 931 363 92.19 17.04 39.42 4.1896...
dProofs33.txt 001 8 353 679 716 110356.00 14.67 39.20 3.3747...
dProofs35‑unfiltered31+.txt 100 41 964 134 860 366.69 67.74 154.60 3.6792...
dProofs35‑unfiltered33+.txt 010 38 416 251 791 329.08 61.41 137.87 3.8685...
dProofs35‑unfiltered35+.txt 001 33 023 626 740 307.16 53.49 124.14 4.1979...
dProofs37‑unfiltered31+.txt 100 155 138 491 321 18975.40 238.30 485.12 3.6843...
dProofs37‑unfiltered33+.txt 010 142 381 295 095 14331.28 217.76 446.50 3.6836...
dProofs37‑unfiltered35+.txt 001 128 595 197 788 14740.88 197.08 408.38 3.8740...
dProofs39‑unfiltered35+.txt 001 480 994 030 817 4566.99 1301.97 1768.07 3.6872...

Measured RAM requirements correspond to the maximum resident set size according to Slurm, i.e. MaxRSS of sacct.
Required resources vary based on implementation and environment; numbers are to illustrate orders of magnitude.
Some more – and very special – proof systems are illustrated further down below.

Usage

pmGenerator ( <configuring command> | <composable command> )+ | <configuring command>* <standalone command>

Configuring:
  -c [-i <file>] [-s <string>] [-n] [-N <limit or -1>] [-l] [-e <id>] [-d]
     Proof system customization ; Generates a SHA-512/224 hash to identify the system, sets the effective data location to "<data location>/<hash>", and (if nonexisting) creates the !.def file.
       -i: specify axioms by input file path (where a LF-separated string of axioms is stored), ignoring lines that are empty or starting with '%'
       -s: specify axioms by comma-separated string ; used only when '-i' unspecified ; default: "C0C1.0,CC0C1.2CC0.1C0.2,CCN0N1C1.0"
       -n: specify formulas in normal Polish notation (e.g. "CpCqp"), not with numeric variables (e.g. "C0C1.0")
       -N: enable necessitation rule "N" for the given system with unlimited (-N 0) or limited (-N <positive amount>) consecutive necessitation steps allowed
       -l: disable lazy N-rule parsing ; parse proofs Nα:Lβ despite knowing α:β (requires more time but less memory)
       -e: specify extracted system with the given identifier
       -d: default system ; ignore all other arguments except '-e'

Composable:
  -g <limit or -1> [-u] [-q <limit>] [-s] [-l <limit or -1>]
     Generate proof files ; at ./data/[<hash>/]/dProofs-withConclusions/ when '-s' unspecified ; otherwise at ./data/[<hash>/]/dProofs-withoutConclusions/
       -u: unfiltered (significantly faster, but generates redundant proofs)
       -q: limit number of proof candidate strings queued per worker thread (may lower memory requirements for systems with low acceptance rates)
       -s: proof files without conclusions, requires additional parsing
       -l: limit symbolic length of generated conclusions to at most the given number ; works only in extracted environments ; recommended to use in combination with '-q' to save memory
  -r <D-proof database> <output file> [-l <path>] [-i <prefix>] [-s] [-d]
     Replacements file creation based on proof files
       -l: customize data location path ; default: "data"
       -i: customize input file path prefix in data location ; default: "dProofs-withConclusions/dProofs"
       -s: proof files without conclusions, requires additional parsing ; sets default input file path prefix to "dProofs-withoutConclusions/dProofs"
       -d: print debug information
  -a <initials> <replacements file> <D-proof database> <output file> [-s] [-l] [-w] [-d]
     Apply replacements file
       -s: style all proofs (replace proofs with alphanumerically smaller variants)
       -l: list all proofs (i.e. not only modified proofs)
       -w: wrap results
       -d: print debug information
  --parse <string> [-n] [-u] [-j <limit or -1>] [-b] [-s] [-e] [-f] [-o <output file>] [-d]
     Parse and print proofs given by a comma-separated string
       -n: print formulas in normal Polish notation (e.g. "CpCqp"), not with numeric variables (e.g. "C0C1.0")
       -u: print formulas in infix notation with operators as Unicode characters ; used only when '-n' unspecified
       -j: join common subproofs together when they are used at least a given amount of times ; default: 2
       -b: only print conclusions of the given proofs ; sets default of '-j' to 1
       -s: only print summary with conclusions and abstract condensed detachment proofs ; used only when '-b' unspecified
       -e: keep expanded proof strings ; show fully detailed condensed detachment proofs rather than allowing them to contain references ; used only when '-b' unspecified
       -f: proofs are given by input file path (where a comma-separated string is stored), ignoring all CR, LF, whitespace, and lines starting with '%'
       -o: redirect the result's output to the specified file
       -d: print debug information
  --transform <string> [-s <string>] [-j <limit or -1>] [-p <limit or -1>] [-n] [-u] [-t <string>] [-e] [-i <limit or -1>] [-l <limit or -1>] [-f] [-o <output file>] [-d]
     Transform proof summary (as by '--parse [...] -s') into recombined variant ; ignores configured system (proof summaries provide their own axioms) ; "," represents LF
       -s: list a subproof with its conclusion if it occurs in the given comma-separated list of conclusions
       -j: join common subproofs together when they are used at least a given amount of times ; default: 2
       -p: only keep subproofs with primitive lengths not exceeding the given limit ; default: -1
       -n: specify and print formulas in normal Polish notation (e.g. "CpCqp"), not with numeric variables (e.g. "C0C1.0")
       -u: print formulas in infix notation with operators as Unicode characters ; does not affect input format (for which '-n' can still be specified)
       -t: only transform proofs of specified theorems (proven by subsequences of the input), given by a comma-separated string ; "." to keep all conclusions ; default: final theorem only
       -e: keep expanded proof strings ; show fully detailed condensed detachment proofs rather than allowing them to contain references
       -i: decrease memory requirements but increase time consumption by not storing intermediate unfoldings that exceed a certain length ; default: -1
       -l: abort computation when combined requested proof sequences exceed the given limit in bytes ; default: 134217728 (i.e. 128 MiB)
       -f: proof summary is given by input file path ; ignores lines that are empty or starting with '%'
       -o: redirect the result's output to the specified file
       -d: print debug information
  --unfold <string> [-n] [-t <string>] [-i <limit or -1>] [-l <limit or -1>] [-w] [-f] [-o <output file>] [-d]
     Break down proof summary (as by '--parse [...] -s') into primitive steps ; ignores configured system (proof summaries provide their own axioms) ; "," represents LF
       -n: specify formulas in normal Polish notation (e.g. "CpCqp"), not with numeric variables (e.g. "C0C1.0")
       -t: obtain proofs of specified theorems (proven by subsequences of the input), given by a comma-separated string ; "." to obtain a proof for each conclusion ; default: final theorem only
       -i: decrease memory requirements but increase time consumption by not storing intermediate unfoldings that exceed a certain length ; default: -1
       -l: abort computation when combined requested proof sequences exceed the given limit in bytes ; default: 134217728 (i.e. 128 MiB)
       -w: wrap results
       -f: proof summary is given by input file path ; ignores lines that are empty or starting with '%'
       -o: redirect the result's output to the specified file
       -d: print debug information
  --search <string> [-n] [-s] [-w] [-p] [-f] [-d]
     Search in proof files at ./data/[<hash>/]/dProofs-withConclusions/ via comma-separated string of full formulas or full proofs ; [Hint: Generate missing files with '--variate 1 -s'.]
       -n: specify formulas in normal Polish notation (e.g. "CpCqp"), not with numeric variables (e.g. "C0C1.0")
       -s: search for schemas of the given formulas
       -w: search whole collections of schemas (i.e. enable multiple results per term) ; entails '-s'
       -p: search proofs (rather than conclusions) ; used only when '-n' and '-s' unspecified
       -f: search terms are given by input file path (where a comma-separated string is stored), ignoring all CR, LF, whitespace, and lines starting with '%'
       -d: print debug information
  --extract [-t <limit or -1>] [-o <output file>] [-s] [-# <amount up to 35>] [-h <string>] [-l <limit or -1>] [-f] [-d]
     Various options to extract information from proof files ; [Hint: Generate missing files with '--variate 1 -s'.]
       -t: compose file with up to the given amount of smallest conclusions that occur in proof files ; includes origins, symbolic lengths, proofs, and formulas in normal Polish notation
       -o: specify output file path for '-t' ; relative to effective data location ; default: "top<amount>SmallestConclusions_<min proof length>to<max proof length>Steps<unfiltered info>.txt"
       -s: redundant schema removal for '-t' ; very time-intensive for requesting huge collections from unfiltered proof files - better pre-filter via '-g' or '-m' instead ; default: false
       -#: initialize proof system at ./data/[<hash>/]/extraction-<id>/ with the given amount of smallest filtered conclusions that occur in proof files ; specify with '-c <parent system> -e <id>'
       -h: similar to '-#' ; hand-pick conclusions with a comma-separated string of proofs ; "." to not modify axioms
       -l: similar to '-#' (but creates identical system with prebuilt proof files) ; copy proofs with conclusions that have a symbolic length of at most the given number
       -f: proofs for '-h' are given by input file path (where a comma-separated string is stored), ignoring all CR, LF, whitespace, and lines starting with '%'
       -d: print debug information
  --iterate [-u] [-s]
     Iterate proof candidates currently next up for generation and print (and store for custom proof systems) their amount for prediction purposes
       -u: use unfiltered proof files
       -s: use proof files without conclusions
  --variate ( 0 | 1 ) [-l <path>] [-i <prefix>] [-o <prefix>] [-s] [-d]
     Create proof files with removed (--variate 0) or added (--variate 1) conclusions from in-memory data and proof files of the other variant
       -l: customize data location path ; default: "data"
       -i: customize input file path prefix in data location ; default: "dProofs-withConclusions/dProofs" or "dProofs-withoutConclusions/dProofs"
       -o: customize output file path prefix in data location ; default: "dProofs-withoutConclusions/dProofs" or "dProofs-withConclusions/dProofs"
       -s: only use data stored in-memory
       -d: print debug information
  --plot [-l <path>] [-i <prefix>] [-s] [-t] [-x <limit or -1>] [-y <limit or -1>] [-o <output file>] [-d]
     Print conclusion length plot data
       -l: customize data location path ; default: "data"
       -i: customize input file path prefix in data location ; requires files with conclusions ; default: "dProofs-withConclusions/dProofs"
       -s: measure symbolic length (in contrast to conclusion representation length)
       -u: include unfiltered proof files
       -t: table arrangement, one data point per row
       -x: upper horizontal limit
       -y: upper vertical limit
       -o: print to given output file
       -d: print debug information

Standalone:
  -m <limit> [-s]
     MPI-based multi-node filtering (-m <n>) of a first unfiltered proof file (with conclusions) at ./data/[<hash>/]dProofs-withConclusions/dProofs<n>-unfiltered<n>+.txt. Creates dProofs<n>.txt.
       -s: disable smooth progress mode (lowers memory requirements, but makes terrible progress predictions)

Examples

pmGenerator -g -1 -q 50
pmGenerator -g 19 -g 21 -u -r data/pmproofs-old.txt data/pmproofs-reducer.txt -d -a SD data/pmproofs-reducer.txt data/pmproofs-old.txt data/pmproofs-result-styleAll-modifiedOnly.txt -s -w -d
pmGenerator --variate 0 -l data/ -o "dProofs-withoutConclusions (all)/dProofs" -d
pmGenerator --variate 1 -s --search CNpCCNpqNp -n -d --search CNpCCNpqNp -n -s
pmGenerator --variate 1 -s --search CCNpCpqCNpCpq,CCCCppCppCCCppCppCNCCqqCqqCCCqqCqqCCqqCqqCCCppCppCNCCqqCqqCCCqqCqqCCqqCqq -n -w -d
pmGenerator --plot -s -d --plot -s -t -x 50 -y 100 -o data/plot_data_x50_y100.txt
pmGenerator -c -N -1 -n -s CpCqp,CCpCqrCCpqCpr,CCNpNqCqp,CLpp,CLCpqCLpLq,CNLNpLNLNp --parse DD2D16DD2DD2D13DD2D1D2DD2D1D2D1DD2DD2D13D1DD2DD2D13DD2D13114DD2D13DD2D1311D3DD2DD2D13DD2D1311 -j 2 -n
pmGenerator --parse DD2D11DD2D13DD2D1DD22D11DD2D11DD2D131 -n -s -o data/CNCpNqCrCsq.txt --transform data/CNCpNqCrCsq.txt -f -n -j 1 -e --transform data/CNCpNqCrCsq.txt -f -n -t CNCpNqCrq -d
pmGenerator --unfold CpCqp=1,CCpCqrCCpqCpr=2,CCNpNqCqp=3,[0]CCpCNqNrCpCrq:D2D13,[1]Cpp:DD211,[2]NCCppNCqq:DD3DD2DD2D[0]D[0]11D1[1][1] -n -t CNNpp,NCCppNCqq
pmGenerator --transform data/m.txt -f -n -t CpCqp,CCpCqrCCpqCpr,CCNpNqCqp,Cpp,CCpqCCqrCpr,CCNppp,CpCNpq -j -1 -p -2 -d
pmGenerator -c -s CCCCC0.1CN2N3.2.4CC4.0C3.0 -g 35 --plot -s -t -x 50 -y 100 -o data/478804cd4793bc7f87041d99326aff4595662146d8a68175dda22bed/plot_data_x50_y100.txt
pmGenerator -c -n -s CCCCCpqCNrNsrtCCtpCsp --search CpCqp,CCpCqrCCpqCpr,CCNpNqCqp -n
pmGenerator --variate 1 -s --extract -t 1000 -s -d
pmGenerator --variate 1 -s --extract -# 35 -d -c -d -e 0
pmGenerator -m 17 -s

Multi-node Computing

For MPI-based filtering, each spawned process is multithreaded and attempts to use as many threads as the hardware specifies as concurrent. Therefore, it is ideal to spawn the same amount of processes and nodes.
The following exemplary Slurm batch script has been used via sbatch in order to reduce dProofs31‑unfiltered31+.txt to dProofs31.txt.

#!/bin/zsh
#SBATCH --job-name=pmGen-20
#SBATCH --output=output_%J.txt
#SBATCH --partition=c18m
#SBATCH --account=rwth1392
#SBATCH --time=3-00:00:00
#SBATCH --mem-per-cpu=3900M
#SBATCH --cpus-per-task=48
#SBATCH --mail-user=<email>
#SBATCH --mail-type=END,FAIL,TIME_LIMIT
## Number of nodes to use ; Also update #processes (via srun)!
#SBATCH --nodes=6
srun -n 6 ./pmGenerator -m 31

A subsequent query with squeue would then reveal the following information:

$ squeue -o "%.9i %.8j %.9P %.11a %.8u %.5C %.5D %.10T %.10M %.10l %.19S %R" -u <userID>
    JOBID     NAME PARTITION     ACCOUNT     USER  CPUS NODES      STATE       TIME TIME_LIMIT          START_TIME NODELIST(REASON)
 34762453 pmGen-20      c18m    rwth1392 <userID>   288     6    RUNNING       3:34 3-00:00:00 2023-05-04T07:52:24 ncm[0297,0306-0307,0315,0320-0321]

You may have a look at the log file generated by that computation.

Navigation

Custom Proof Systems

There are illustrated seven proof systems in the following which according to M. Walsh and B. Fitelson are minimal 1-bases (i.e. generators consisting of shortest single axioms) for propositional logic. Their only remaining candidate CCCpqCCrNsCtNtCCtpCrp can be refuted since pmGenerator -c -n -s CCCpqCCrNsCtNtCCtpCrp -g -1 produces only 9 more representatives (1.D11:CCpCNpqCrCNpq, 2.D1D11:CCNppCqp, 3.D1D1D11:CCpNCpNpCqNCpNp, 4.DD11D11:CpCNCqCNqrCNqr, 5.DD11D1D11:CpCNCNqqq, 6.DDD11D111:CNCpCNpqCNpq, 7.DD11D1D1D11:CpCNCqNCqNqNCqNq, 8.DDD11D1D111:CNCNppp, 9.DDD11D1D1D111:CNCpNCpNpNCpNp).
Therefore, these systems are implied to be the only minimal 1-bases for C-N propositional calculus.

Target files are distinguished using a hexadecimal SHA-512/224 digest as a folder name for each proof system.
For user identification of hash folders, I recommend to use custom icons, such as illustrated below.
  Icon-Preview
For this purpose, a favicon database (ico.dll) is included in the release files, as well as an archive (ico.7z) with all the .ico files for usability with non-Windows operating systems.

Meredith's Axiom; 1-basis (CCCCCpqCNrNsrtCCtpCsp)  [top1000] [cardinalities] [sample] [info]
Files up to..   Size of Files   
[B]          
+Costs  
[≈core‑h]
RAM (load)
[≈GiB]    
RAM (gen.)
[≈GiB]    
Recent 
Growth
dProofs67.txt 2 422 110 008 5500.48 7.77 10.00 1.6992...
dProofs69.txt 4 114 534 716 15432.96 12.79 17.07 1.6982...
dProofs71‑unfiltered71+.txt 8 383 545 010 148.71 25.06 47.19 2.5224...
dProofs73‑unfiltered71+.txt 17 073 991 605 254.48 50.85 93.84 2.0357...
dProofs75‑unfiltered71+.txt 32 986 029 883 372.08 97.22 172.29 1.8309...
dProofs77‑unfiltered71+.txt 62 426 542 480 742.28 181.43 304.37 1.8502...
dProofs79‑unfiltered71+.txt 118 604 053 297 1578.13 339.19 550.39 1.9081...
dProofs81‑unfiltered71+.txt 226 927 343 615 2896.16 635.64 1003.84 1.9282...
dProofs83‑unfiltered71+.txt 434 504 849 685 5380.80 1196.78 1846.46 1.9162...
Walsh's 1st Axiom; 1-basis (CCpCCNpqrCsCCNtCrtCpt)  [top1000] [cardinalities] [sample] [info]
Files up to..   Size of Files   
[B]          
+Costs  
[≈core‑h]
RAM (load)
[≈GiB]    
RAM (gen.)
[≈GiB]    
Recent 
Growth
dProofs137.txt 5 371 226 962 6707.84 14.01 20.56 1.2953...
dProofs139.txt 6 974 144 356 11663.04 18.06 25.23 1.2971...
dProofs141‑unfiltered141+.txt 12 134 774 417 121.87 31.18 53.15 3.2195...
dProofs143‑unfiltered141+.txt 20 608 552 657 167.89 52.28 83.02 1.6420...
dProofs145‑unfiltered141+.txt 32 775 525 869 281.73 82.13 126.35 1.4358...
dProofs147‑unfiltered141+.txt 48 905 549 281 376.27 121.50 185.33 1.3257...
dProofs149‑unfiltered141+.txt 70 481 548 096 564.46 173.34 264.17 1.3376...
dProofs151‑unfiltered141+.txt 99 620 139 213 825.12 243.11 371.22 1.3505...
dProofs153‑unfiltered141+.txt 139 487 266 659 1169.19 340.40 520.65 1.3681...
dProofs155‑unfiltered141+.txt 193 258 029 918 1610.97 471.06 708.37 1.3487...
dProofs157‑unfiltered141+.txt 266 902 438 209 2178.79 647.45 965.41 1.3695...
dProofs159‑unfiltered141+.txt 365 676 201 031 3099.95 881.28 1307.16 1.3412...
dProofs161‑unfiltered141+.txt 499 538 375 339 4419.27 1198.88 1789.96 1.3552...
Walsh's 2nd Axiom; 1-basis (CpCCqCprCCNrCCNstqCsr)  [top1000] [cardinalities] [sample] [info]
Files up to..   Size of Files   
[B]          
+Costs  
[≈core‑h]
RAM (load)
[≈GiB]    
RAM (gen.)
[≈GiB]    
Recent 
Growth
dProofs35.txt 4 428 081 090 1335.68 8.56 12.14 3.0420...
dProofs37.txt 13 474 726 258 11637.12 26.82 36.16 3.0433...
dProofs39‑unfiltered39+.txt 41 176 907 064 139.36 81.00 99.42 3.0621...
dProofs41‑unfiltered39+.txt 125 666 670 576 476.43 246.33 291.86 3.0499...
dProofs43‑unfiltered39+.txt 383 440 778 208 1881.40 748.02 888.57 3.0509...
Walsh's 3rd Axiom; 1-basis (CpCCNqCCNrsCptCCtqCrq)  [top1000] [cardinalities] [sample] [info]
Files up to..   Size of Files   
[B]          
+Costs  
[≈core‑h]
RAM (load)
[≈GiB]    
RAM (gen.)
[≈GiB]    
Recent 
Growth
dProofs61.txt 4 295 581 846 3908.16 10.14 13.43 1.7101...
dProofs63.txt 7 348 821 352 10532.16 16.96 26.15 1.7086...
dProofs65‑unfiltered65+.txt 16 763 993 300 352.47 37.46 59.38 3.0836...
dProofs67‑unfiltered65+.txt 39 535 521 298 711.19 86.14 124.11 2.4185...
dProofs69‑unfiltered65+.txt 88 716 050 898 1222.77 189.80 251.38 2.1597...
dProofs71‑unfiltered65+.txt 192 118 527 148 2507.20 405.23 524.03 2.1025...
dProofs73‑unfiltered65+.txt 412 837 007 779 5133.48 867.31 1098.91 2.1345...
Walsh's 4th Axiom; 1-basis (CpCCNqCCNrsCtqCCrtCrq)  [top1000] [cardinalities] [sample] [info]
Files up to..   Size of Files   
[B]          
+Costs  
[≈core‑h]
RAM (load)
[≈GiB]    
RAM (gen.)
[≈GiB]    
Recent 
Growth
dProofs149.txt 9 131 925 110 6302.40 21.12 36.33 1.2621...
dProofs151.txt 11 525 933 711 10297.92 26.43 45.07 1.2610...
dProofs153‑unfiltered153+.txt 24 783 434 283 158.55 55.60 86.32 5.5377...
dProofs155‑unfiltered153+.txt 42 872 023 548 230.07 95.18 137.85 1.3644...
dProofs157‑unfiltered153+.txt 68 891 621 001 302.65 151.49 199.75 1.4384...
dProofs159‑unfiltered153+.txt 103 533 160 689 453.35 226.16 293.63 1.3313...
dProofs161‑unfiltered153+.txt 159 214 361 422 644.41 345.00 427.35 1.6073...
dProofs163‑unfiltered153+.txt 234 912 798 874 923.80 506.04 613.85 1.3594...
dProofs165‑unfiltered153+.txt 362 044 988 241 1372.75 770.18 899.59 1.6794...
dProofs167‑unfiltered153+.txt 542 099 491 770 2013.71 1144.49 1316.14 1.4162...
dProofs169‑unfiltered153+.txt 815 788 131 974 3061.78 1716.57 1933.14 1.5200...
Walsh's 5th Axiom; 1-basis (CCpqCCCrCstCqCNsNpCps)  [top1000] [cardinalities] [sample] [info]
Files up to..   Size of Files   
[B]          
+Costs  
[≈core‑h]
RAM (load)
[≈GiB]    
RAM (gen.)
[≈GiB]    
Recent 
Growth
dProofs49.txt 30 353 473 441 3559.68 57.45 74.22 2.3694...
dProofs51.txt 71 920 889 085 18849.60 135.68 170.98 2.3693...
dProofs53‑unfiltered53+.txt 170 477 511 288 754.63 320.89 412.98 2.3710...
dProofs55‑unfiltered53+.txt 404 054 704 152 2173.65 759.14 916.66 2.3699...
Walsh's 6th Axiom; 1-basis (CCCpqCCCNrNsrtCCtpCsp)  [top1000] [cardinalities] [sample] [info]
Files up to..   Size of Files   
[B]          
+Costs  
[≈core‑h]
RAM (load)
[≈GiB]    
RAM (gen.)
[≈GiB]    
Recent 
Growth
dProofs79.txt 3 484 676 910 6643.52 9.36 16.18 1.5432...
dProofs81.txt 5 367 857 872 15677.76 14.23 24.41 1.5385...
dProofs83‑unfiltered83+.txt 13 610 427 753 235.56 33.96 61.15 4.3769...
dProofs85‑unfiltered83+.txt 28 552 993 964 415.03 69.16 112.16 1.8128...
dProofs87‑unfiltered83+.txt 54 160 329 107 679.52 128.54 196.18 1.7137...
dProofs89‑unfiltered83+.txt 96 917 532 392 1166.01 229.28 356.90 1.6697...
dProofs91‑unfiltered83+.txt 165 311 577 556 1997.90 389.83 598.55 1.5995...
dProofs93‑unfiltered83+.txt 277 401 972 175 3700.55 650.43 993.50 1.6388...
dProofs95‑unfiltered83+.txt 470 466 008 218 6619.36 1089.83 1638.71 1.7223...

The above systems show remarkable differences in complexity, despite similarities. For example, the syntax trees of Walsh's 3rd and 4th axiom differ only in four leaf nodes.

Only systems with an odd-ary rule such as necessitation can have condensed detachment proofs of even lengths.
The system of modal logic illustrated below extends Frege's calculus simplified by Łukasiewicz. It can be covered by enabling the N-rule without limiting the number of its consecutive applications via -c -N -1.

Files up to..   Size of Files   
[B]          
+Costs  
[≈core‑h]
RAM (load)
[≈GiB]    
RAM (gen.)
[≈GiB]    
Recent 
Growth
dProofs23.txt 929 688 759 2787.20 4.39 5.02 2.1292...
dProofs24.txt 1 926 502 082 11495.04 9.00 11.99 2.0500...
dProofs25‑unfiltered25+.txt 4 268 285 433 90.85 19.50 70.23 2.3492...
dProofs26‑unfiltered25+.txt 9 291 301 075 197.73 41.27 143.64 2.1449...
dProofs27‑unfiltered25+.txt 20 706 078 097 450.03 89.08 305.84 2.2724...
dProofs28‑unfiltered25+.txt 45 428 091 663 1052.76 190.06 632.76 2.1657...
dProofs29‑unfiltered25+.txt 100 115 373 391 2364.16
-q 502121.81
409.23 1327.37
-q 50746.09
2.2120...
dProofs30‑unfiltered25+.txt 218 246 046 918 -q 504774.60 870.21 -q 501563.51 2.1601...

Generation and utilization were performed with computing resources granted by RWTH Aachen University under project rwth1392.