This documentation describes the assertion language in the Ciao Prolog system, which allows annotating code with type and instantiation mode declarations for debugging, testing, optimization, and autodocumentation.
# PART III - Assertions and their use — The Ciao System v1.25
Source: [https://ciao-lang.org/ciao/build/doc/ciao.html/AssrtLang.html](https://ciao-lang.org/ciao/build/doc/ciao.html/AssrtLang.html)
**Author\(s\):**[The Ciao Development Team](https://ciao-lang.org/ciao/build/doc/ciao.html/ciaosearch.html#The%20Ciao%20Development%20Team)\.
Ciao allows*annotating*the program code with*assertions*\. Such assertions include[type](https://ciao-lang.org/ciao/build/doc/ciao.html/ciaosearch.html#type)and[instantiation mode](https://ciao-lang.org/ciao/build/doc/ciao.html/ciaosearch.html#instantiation%20mode)declarations, but also more general properties as well as comments for*autodocumentation*in the*literate programming*style\. These assertions document predicates \(and modules and whole applications\) and can be used by the Ciao tools while debugging, testing, and optimizing the program or library, and by the Ciao documenter to build program or library reference manuals\.
## Subparts
- [The Ciao assertion language](https://ciao-lang.org/ciao/build/doc/ciao.html/assertions_doc.html)
- [Declaring regular types](https://ciao-lang.org/ciao/build/doc/ciao.html/regtypes_doc.html)
- [Basic data types and properties](https://ciao-lang.org/ciao/build/doc/ciao.html/basic_props.html)
- [Properties which are native to analyzers](https://ciao-lang.org/ciao/build/doc/ciao.html/native_props.html)
- [Classical Prolog modes](https://ciao-lang.org/ciao/build/doc/ciao.html/modes_doc.html)
- [ISO\-Prolog modes](https://ciao-lang.org/ciao/build/doc/ciao.html/isomodes_doc.html)
- [Some basic Prolog modes](https://ciao-lang.org/ciao/build/doc/ciao.html/basicmodes_doc.html)
- [Meta\-properties](https://ciao-lang.org/ciao/build/doc/ciao.html/meta_props.html)
- [Documentation comments](https://ciao-lang.org/ciao/build/doc/ciao.html/doccomments_doc.html)
- [Run\-time checking of assertions](https://ciao-lang.org/ciao/build/doc/ciao.html/rtchecks_doc.html)
- [Unit testing](https://ciao-lang.org/ciao/build/doc/ciao.html/unittest.html)
- [Using assertions for preprocessing programs](https://ciao-lang.org/ciao/build/doc/ciao.html/debugging_in_ciaopp.html)
The article argues that disabling asserts in production is a bad practice, using Zig's assert mechanism as an example to illustrate the benefits of keeping asserts enabled for catching programming errors even in production builds.
This paper introduces CASPO, a framework for aligning token-level confidence with step-wise logical correctness in large reasoning models using iterative Direct Preference Optimization. It also proposes Confidence-aware Thought (CaT) for dynamically pruning uncertain reasoning branches during inference to improve reliability and efficiency.
This paper introduces CogniConsole, an architectural abstraction that externalizes inference-time control for LLMs, demonstrating through controlled probes that increasing structural scaffolding reduces output variance and failure rates, challenging the assumption that reliability stems solely from model capability.
Microsoft released ASSERT at Build 2026, an open-source framework that converts natural language behavior specifications into executable evaluations for AI agents.
Proposes CASE, a framework combining training-time causal alignment and inference-time structural enforcement to improve faithfulness of chain-of-thought reasoning in large language models, achieving a 37% average improvement in CoT faithfulness across benchmarks.