Type application census

Copy Markdown View Source

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
Scanned29358
With an applied type constructor (TFF, exact)885
— of those, outside the base languages885
— of those, at arity ≥ 2 over a type variable884
— of those, at arity ≥ 2 over a nested type variable884
With an apply spine in a THF type (heuristic)939
— of those, TH1807
— of those, DH086
— of those, DH146
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.

ConstructorAritiesFilesVarVar nestedDomains
fun2617617617COM, ITP, LCL, NUM, NUN, SCT, SWV, SWW
list144900COM, ITP, LCL, SCT, SWV, SWW
product_prod2362339339COM, ITP, LCL, NUM, SCT, SWW
option120800COM, ITP, SCT, SWW
tyop_2Emin_2Efun2196196196ITP
set117600ITP
filter117000ITP
itself113400ITP
tyop_2Epair_2Eprod2131130130ITP
array110200ITP, SWW
sum_sum2969696ITP, SWW
ref18800ITP, SWW
tyop_2Elist_2Elist17100ITP
map2616161SWW, SYN
heap_ext14800ITP
heap_Time_Heap14600ITP
multiset14600ITP
tyop_2Eoption_2Eoption14400ITP
word12800ITP
tyop_2Esum_2Esum2272727ITP
numeral_bit012600ITP
numeral_bit112600ITP
exp12500SWW
huffma1450048681e_tree12500SWW
hoare_28830079triple12400SWW
fm12200COM
tyop_2Efcp_2Ecart2191919ITP
tyop_2Eind__type_2Erecspace11900ITP
old_node2181818ITP
tyop_2Ebool_2Eitself11800ITP
pred11500ITP, SWW
seq11400ITP
tyop_2Etopology_2Etopology1900ITP
tuple_isomorphism3888ITP
fun12777LCL
tyop_2Efinite__map_2Efmap2777ITP
tyop_2Equote_2Evarmap1600ITP
poly1500SWW
tyop_2Ebinary__ieee_2Efloat2555ITP
tyop_2Ecanonical_2Ecanonical__sum1500ITP
tyop_2Ecanonical_2Espolynom1500ITP
tyop_2Efcp_2Ebit01500ITP
tyop_2Emetric_2Emetric1500ITP
tyop_2Esemi__ring_2Esemi__ring1500ITP
tyop_2Etoto_2Etoto1500ITP
tyop_2Efcp_2Ebit11400ITP
tyop_2Ering_2Ering1400ITP
tyop_2Ewellorder_2Ewellorder1400ITP
lazy_lazy_sequence1300COM, SWW
node2303SWW
poly11300SWW
tyop_2EEncode_2Etree1300ITP
tyop_2Ellist_2Ellist1300ITP
tyop_2Eordinal_2Eordinal1300ITP
tyop_2Ereal__topology_2Enet1300ITP
tyop_2EringNorm_2Epolynom1300ITP
fun_box2222ITP
heap_Heap1200ITP
tyop_2Ebinary__ieee_2Efp__op2222ITP
tyop_2Eenumeral_2Ebl1200ITP
tyop_2Eenumeral_2Ebt1200ITP
tyop_2Epatricia_2Eptree1200ITP
tyop_2Esptree_2Espt1200ITP
cup_of1100SYN
tyop_2Efcp_2Efinite__image1100ITP
tyop_2Efmaptree_2Efmaptree2111ITP
tyop_2Einftree_2Einftree3111ITP
tyop_2Elbtree_2Elbtree1100ITP
tyop_2Epath_2Epath2111ITP
tyop_2Epatricia__casts_2Eword__ptree2111ITP

Provenance

BNF9.3.1.3

This run

Library/opt/TPTP
Elixir1.20.4
OTP28
Schedulers8
Workers4 on 28125, 2 on 913, 1 on 320
Thinningnone — every file
Wall clock3977.7 s