Agent survey of the RDF/RDFS entailment verticals against the RDF 1.1
Semantics REC structure. Companion to
owl-rule-shape-matrix.md. Full detail
lives in the modules' own banners; this records the coverage verdicts
and the ranked gap list driving the core-semantics push.
Simple.ModelTheory.interpolation_lemma, Herbrand construction at
herbrand), composed end-to-end with the shipping search
(simple_entails_iff_model_theory, plus the graph_exact
soundness boundary with its machine-checked SE-1 witness). The
spec-text instance-subgraph form has one unproved converse
(choice-based image construction). The MERGING lemma is absent.
Label-independence at the parser boundary is proved
(Boundary.entails_ntriples_boundary).rdf:_n as a schema
predicate; rdf_closed defined; NO completeness theorem at this
rung.rdfs_licensed_true, step/closure
soundness, and rdfs_closure_entails (hypothesis now discharged
non-vacuously via ChainWf) all landed. NO COMPLETENESS THEOREM
EXISTS at this rung — the rho-df fragment is named and predicated
(rho_df_graph etc.) but the theorem is unlanded; unrestricted
completeness is FALSE (axiomatic tables unseeded), not merely
unproven.datatype_set parametric machinery + the
d_minimal engine set only. NO literal value spaces, no IL
conditions, no ill-typed-literal clause; the SE-1 divergence
(lang-tag folding legal at the RDF rung, illegal at simple) is
banner prose, not a rung-level theorem.rdfs_conditions
bundle covers every implemented row; missing by design/absence:
IL/value-space conditions, Hayes §7 container-structure conditions,
the lg/gg literal-generalization machinery, first-class IP/IC sets
(recovered via icext — the documented enlarging convention).rdfs_entails d_minimal g e <==> closure-then-simple-entailment,
for rho_df_graph g, e", is FALSE; see the 2026-08-06 entry
below. The corrected, landed statement is over the SIX rho-df
semantic conditions (RDF.Entailment.RDFS.Completeness. rho_df_saturation_iff); Herbrand technique from the simple rung
reuses, as predicted.lemma_build_indexed_complete_pred:
every triple with predicate p IS in the pred bucket (converse of
wf). Named prerequisite; design doc calls it "not hard".rdfs_closure's
length-equality test with a genuine no-more-derivations predicate
(per-row _monotone/_complete lemmas already pin element sets).cond_langString_value, making the SE-1/D3 divergence a provable
rung-level entailment fact. Least existing infrastructure.Status tracking (updated 2026-08-05 late):
FStar.String.compare ships with no
ordering specification in ulib (interface-only native primitive),
so tree-lookup completeness cannot link positional splits to key
comparisons. The sortWith completeness companions landed (4a0e6dd);
the axiom-module decision is #347.RDF.Entailment.RDFS.FixedPoint.fst): step_saturated, per-row
extensivity, lemma_saturated_stable, and the length-test theorem
under TWO explicit hypotheses — the unconditional form is FALSE
(no_dup_keys needed on the pre-dedup intermediate graph; no_repeats
blocked by noeq triple vs stdlib sortWith_sorted). Third finding:
term_to_key_total literal keys use plain "^^" not unit_sep —
#348, a wider dedup-collision surface than #338 described.Status update 2026-08-06 — gap 1 PARTLY LANDED, and its statement
corrected (formal/fstar/RDF.Entailment.RDFS.Completeness.fst, 829
lines, verifies under make verify-rdf-mt, now 21 modules):
rdfs_entails d_minimal with closure-then-simple-entailment cannot
be an iff, and no fragment predicate on g and e repairs it. Two
witnesses, both inside rho_df_graph. W1: [X sc Y]
RDFS-entails [X sc X] (cond_subClassOf_ic +
cond_subClassOf_refl), which rdfs_closure never derives. Both
halves are now machine-checked —
rho_df_entailment_strictly_stronger. W2: cond_resource makes
[Z rdf:type rdfs:Resource] entailed by every graph, for EVERY IRI
Z, including IRIs absent from g; no finite closure can list that.
W2 is structural, not a missing rule.rho_df_conditions keeps
the six semantic conditions the six rho-df rows rest on and drops
the reflexivity / IC-IP / resource / datatype / axiomatic
conditions — the same reduction the published rho-df result makes.
rho_df_closed_iff: on a rho-df-closed fragment graph, rho-df
entailment IS simple entailment. rho_df_saturation_iff: any
extensive, rho-df-sound, rho-df-closed saturation of g decides
rho-df entailment of fragment graphs by simple entailment.rdfs_closure_rho_df_complete) — the missing half, so this is the
gap's payload. The converse is NOT available and must not be
claimed: the twelve-rule step also runs rdfs1 / rdfs4a / rdfs4b /
rdfs8 / rdfs13 / container membership, whose conclusions are not
rho-df-entailed. A six-rule rho-df closure operator would close the
iff end to end; the tree does not expose one.rho_df_closed (rdfs_closure g fuel) needs _complete lemmas for the six
index-driven rows (only the five RS-2 rows have them);
is_subgraph g (rdfs_closure g fuel) needs iterated extensivity;
rho_df_frag_graph (rdfs_closure g fuel) needs a per-row fragment-
preservation argument.rdfs:subPropertyOf triples. Literal-freeness is the
generalized-RDF delta D5 biting the canonical model — p rdfs:range c plus a p "lit" demands ICEXT membership for a literal, and
RDF.Term.subject has no literal case. Real restriction, not a
formality.