Patterns testés et formes invalides
Statut documentaire : reference — voir Maturité et preuves.
La documentation H-Logic doit se comporter comme une spécification exécutable. Les exemples doivent rester alignés sur la grammaire courante et sur les catégories de tests du parser/évaluateur.
Familles de patterns stables
Les familles de référence validées couvrent les expressions primitives et collections, les définitions, rôles typés et attributs, instances nommées et anonymes, attachement d’interface, quantificateurs, relations logiques, définitions composites/projetées, commandes et requêtes.
Exemples :
#an_apple;
1;
'abc';
1.75;
true;
();
(x,);
(x, y);
[a, b];
{#a, #b};
define .:#Transfer(me)[sender:#Person, receiver:#Person, amount::#float];
#alice::#Customer;
any x:#A, exists y:#B on .:#Pair(x, y);
ask .:#A(x) and .:#R(x, y) return x;
Formes à rejeter
Ne pas publier d’exemples utilisant ces formes invalides ou trompeuses :
- variables de requête préfixées comme
?x; &nameutilisé comme nom de rôle ;- pseudo-fonctions de contexte non supportées ;
- application structurelle d’un type non défini ;
- rôle public projeté absent du corps composite ;
- forme quantifiée combinant type et égalité (
y:#A=&a) ; - wildcard interprété comme contrainte nil exacte ;
- ordre des slots du descendant supposé identique à celui de l’ancêtre ;
- résultat singleton artificiellement enveloppé dans une liste.
Gate de revue
Avant d’ajouter ou modifier un exemple H-Logic, le valider avec la grammaire cible et, lorsque possible, identifier ou ajouter un test parser/évaluation couvrant le même construct. Si ce travail n’est pas fait, marquer la page architecture ou guide plutôt que de revendiquer le niveau reference.