Where a local TPTP library applies a type constructor, and in which dialects.
Every problem and axiom file is read with Tptp.from_string/2 and nothing
else, under the same 20 MB size cap as mix tptp.corpus.
The TFF count is exact — a <tff_atomic_type> node is only ever built for an
application. The THF count is a heuristic, an apply spine in a type-role
statement, because THF does not separate a type from a term. "Outside the base
languages" means a dialect other than cnf, fof, tf0 or th0.
Each — row refines the row above it. The TFF rows are taken over the exact
set and do not describe the heuristic's; the heuristic's files are instead
divided by dialect, which indicates whether it is identifying types.
A constructor applied at arity ≥ 2 over a type variable is the one shape an
elaborator cannot monomorphise into a fresh sort: list($i) is a sort,
fun(A, B) is a constructor that has to enter type unification. It is counted
for a variable as a direct argument and again for a variable anywhere beneath
one, since fun(list(A), $i) is no more monomorphisable than fun(A, B).
Regenerate with mix tptp.census; mix tptp.census --check fails if the
results below have gone stale against the library on this machine.
Results
| Files | |
|---|---|
| Scanned | 29358 |
| With an applied type constructor (TFF, exact) | 885 |
| — of those, outside the base languages | 885 |
| — of those, at arity ≥ 2 over a type variable | 884 |
| — of those, at arity ≥ 2 over a nested type variable | 884 |
| With an apply spine in a THF type (heuristic) | 939 |
| — of those, TH1 | 807 |
| — of those, DH0 | 86 |
| — of those, DH1 | 46 |
Using !> | 2092 |
Constructors (TFF)
From the exact TFF walk alone. record_thf/3 sets a boolean and never
populates constructors, so the files the THF heuristic found contribute no
names, no arities and no domains here — this is a census of the constructors
TFF spells unambiguously, not of the library's constructors. Var counts the
files where the constructor took a type variable as a direct argument at
arity ≥ 2, Var nested where one appeared anywhere beneath an argument.
| Constructor | Arities | Files | Var | Var nested | Domains |
|---|---|---|---|---|---|
fun | 2 | 617 | 617 | 617 | COM, ITP, LCL, NUM, NUN, SCT, SWV, SWW |
list | 1 | 449 | 0 | 0 | COM, ITP, LCL, SCT, SWV, SWW |
product_prod | 2 | 362 | 339 | 339 | COM, ITP, LCL, NUM, SCT, SWW |
option | 1 | 208 | 0 | 0 | COM, ITP, SCT, SWW |
tyop_2Emin_2Efun | 2 | 196 | 196 | 196 | ITP |
set | 1 | 176 | 0 | 0 | ITP |
filter | 1 | 170 | 0 | 0 | ITP |
itself | 1 | 134 | 0 | 0 | ITP |
tyop_2Epair_2Eprod | 2 | 131 | 130 | 130 | ITP |
array | 1 | 102 | 0 | 0 | ITP, SWW |
sum_sum | 2 | 96 | 96 | 96 | ITP, SWW |
ref | 1 | 88 | 0 | 0 | ITP, SWW |
tyop_2Elist_2Elist | 1 | 71 | 0 | 0 | ITP |
map | 2 | 61 | 61 | 61 | SWW, SYN |
heap_ext | 1 | 48 | 0 | 0 | ITP |
heap_Time_Heap | 1 | 46 | 0 | 0 | ITP |
multiset | 1 | 46 | 0 | 0 | ITP |
tyop_2Eoption_2Eoption | 1 | 44 | 0 | 0 | ITP |
word | 1 | 28 | 0 | 0 | ITP |
tyop_2Esum_2Esum | 2 | 27 | 27 | 27 | ITP |
numeral_bit0 | 1 | 26 | 0 | 0 | ITP |
numeral_bit1 | 1 | 26 | 0 | 0 | ITP |
exp | 1 | 25 | 0 | 0 | SWW |
huffma1450048681e_tree | 1 | 25 | 0 | 0 | SWW |
hoare_28830079triple | 1 | 24 | 0 | 0 | SWW |
fm | 1 | 22 | 0 | 0 | COM |
tyop_2Efcp_2Ecart | 2 | 19 | 19 | 19 | ITP |
tyop_2Eind__type_2Erecspace | 1 | 19 | 0 | 0 | ITP |
old_node | 2 | 18 | 18 | 18 | ITP |
tyop_2Ebool_2Eitself | 1 | 18 | 0 | 0 | ITP |
pred | 1 | 15 | 0 | 0 | ITP, SWW |
seq | 1 | 14 | 0 | 0 | ITP |
tyop_2Etopology_2Etopology | 1 | 9 | 0 | 0 | ITP |
tuple_isomorphism | 3 | 8 | 8 | 8 | ITP |
fun1 | 2 | 7 | 7 | 7 | LCL |
tyop_2Efinite__map_2Efmap | 2 | 7 | 7 | 7 | ITP |
tyop_2Equote_2Evarmap | 1 | 6 | 0 | 0 | ITP |
poly | 1 | 5 | 0 | 0 | SWW |
tyop_2Ebinary__ieee_2Efloat | 2 | 5 | 5 | 5 | ITP |
tyop_2Ecanonical_2Ecanonical__sum | 1 | 5 | 0 | 0 | ITP |
tyop_2Ecanonical_2Espolynom | 1 | 5 | 0 | 0 | ITP |
tyop_2Efcp_2Ebit0 | 1 | 5 | 0 | 0 | ITP |
tyop_2Emetric_2Emetric | 1 | 5 | 0 | 0 | ITP |
tyop_2Esemi__ring_2Esemi__ring | 1 | 5 | 0 | 0 | ITP |
tyop_2Etoto_2Etoto | 1 | 5 | 0 | 0 | ITP |
tyop_2Efcp_2Ebit1 | 1 | 4 | 0 | 0 | ITP |
tyop_2Ering_2Ering | 1 | 4 | 0 | 0 | ITP |
tyop_2Ewellorder_2Ewellorder | 1 | 4 | 0 | 0 | ITP |
lazy_lazy_sequence | 1 | 3 | 0 | 0 | COM, SWW |
node | 2 | 3 | 0 | 3 | SWW |
poly1 | 1 | 3 | 0 | 0 | SWW |
tyop_2EEncode_2Etree | 1 | 3 | 0 | 0 | ITP |
tyop_2Ellist_2Ellist | 1 | 3 | 0 | 0 | ITP |
tyop_2Eordinal_2Eordinal | 1 | 3 | 0 | 0 | ITP |
tyop_2Ereal__topology_2Enet | 1 | 3 | 0 | 0 | ITP |
tyop_2EringNorm_2Epolynom | 1 | 3 | 0 | 0 | ITP |
fun_box | 2 | 2 | 2 | 2 | ITP |
heap_Heap | 1 | 2 | 0 | 0 | ITP |
tyop_2Ebinary__ieee_2Efp__op | 2 | 2 | 2 | 2 | ITP |
tyop_2Eenumeral_2Ebl | 1 | 2 | 0 | 0 | ITP |
tyop_2Eenumeral_2Ebt | 1 | 2 | 0 | 0 | ITP |
tyop_2Epatricia_2Eptree | 1 | 2 | 0 | 0 | ITP |
tyop_2Esptree_2Espt | 1 | 2 | 0 | 0 | ITP |
cup_of | 1 | 1 | 0 | 0 | SYN |
tyop_2Efcp_2Efinite__image | 1 | 1 | 0 | 0 | ITP |
tyop_2Efmaptree_2Efmaptree | 2 | 1 | 1 | 1 | ITP |
tyop_2Einftree_2Einftree | 3 | 1 | 1 | 1 | ITP |
tyop_2Elbtree_2Elbtree | 1 | 1 | 0 | 0 | ITP |
tyop_2Epath_2Epath | 2 | 1 | 1 | 1 | ITP |
tyop_2Epatricia__casts_2Eword__ptree | 2 | 1 | 1 | 1 | ITP |
Provenance
| BNF | 9.3.1.3 |
This run
| Library | /opt/TPTP |
| Elixir | 1.20.4 |
| OTP | 28 |
| Schedulers | 8 |
| Workers | 4 on 28125, 2 on 913, 1 on 320 |
| Thinning | none — every file |
| Wall clock | 3977.7 s |