The instrument catalogue
Deducible began with four instruments. It now covers roughly twenty-seven contract classes that reach across the fiqh of transactions: sale, partnership, lease and service, the contracts of security and credit, capital markets, the social economy of giving, the charge of zakat, and a regime-neutral common-law engine for universality. Each class refuses its own riba or gharar form by construction. The forbidden shape does not compile.
This catalogue is the map. Every family has its own page. Each entry names the class identifier you
write after the colon in instrument Name : <class>, the principle the engine holds it to, and the
diagnostic codes it can raise.
The families
Section titled “The families”| Family | Classes | Page |
|---|---|---|
| Sale (buyūʿ) | murabahah, salam, istisna, sarf, tawarruq |
Sale |
| Partnership (shirkah) | musharakah, musharakah_mutanaqisah, mudarabah, mudarabah_pool |
Partnership |
| Lease & service (ijārah, wakāla) | ijarah, ijarah_imbt, juala, ariyah, wakala |
Lease & service |
| Security & credit (tawthīqāt) | qard_hasan, rahn, kafala, hawala, wadia |
Security & credit |
| Capital markets (ṣukūk, takāful) | sukuk, takaful |
Capital markets |
| Social economy (tabarruʿāt) | waqf, hibah, wasiyya |
Social economy |
| Charge (zakāt) | the zakat { … } section (all genera, the eight aṣnāf) |
Five C’s → Charge |
| Common law | commercial_escrow, the regime-neutral judiciary engine |
Rule modules |
How to read an entry
Section titled “How to read an entry”Every instrument follows the same shape. A class identifier picks the rule-base. The family-specific sections (returns, capital, risk, pool, zakat) carry the economics. Named invariants assert machine-checkable facts over that structure, and a lifecycle orders the on-chain steps.
instrument <Name> : <class> { // the class selects the rule-base meta { basis: "…"; } // the standard or daleel a spec claims consistency with parties { … } // who, in what capacity … // returns, capital, risk, pool, zakat … invariant <name> { <expr> } // machine-checkable assertions over the shape lifecycle { … } // the ordered on-chain steps}A spec that satisfies its class lowers to a Solidity contract, a Hardhat property test, a deploy descriptor, and a portable invariant manifest. A spec that offends it raises a cited diagnostic and emits nothing.
Two ideas that cut across the families
Section titled “Two ideas that cut across the families”The multilateral pool. The classical ʿaqd binds two parties. But ṣukūk holders and takāful
participants are many. The pool primitive lifts the compiler past the
two-party contract: a set of participants whose shares must total the whole, distributed pro-rata,
on the same arithmetic the farāʾiḍ engine uses for inheritance.
Riba as topology. Some arrangements are sound leg by leg yet forbidden as a whole, such as
bayʿ al-ʿīnah and organised tawarruq. The engine reads a bundle of legs as a directed
asset-flow graph and forbids the cycle that closes back to the financier, not the markup on any one
leg. See Composition.
Where the rules come from
Section titled “Where the rules come from”What “compliant” means is not baked into the engine. A rule module supplies it: plain JSON that a scholar or standards body authors and ratifies. Deducible ships modules for AAOIFI, DSN-MUI, and the four madhāhib (ḥanafī, mālikī, shāfiʿī, ḥanbalī). The same spec can be consistent under one school and refused under another, a live khilāf. The diagnostic codes referenced throughout this catalogue are listed in full in the Diagnostics reference.