Calculation
VVL code generated, then executed
“Loan repayment, margin, ratio”
A manager asks a question the way they would put it to a colleague. The VVL universal solver recognises what kind of problem it is, then hands it over to the specialised engine able to solve it exactly. When its answer rests on assumptions, it returns them with their source and a confidence level.
The solver is written in a single line, in its long form or as its alias. Classification is done by Jev when Jev mode is active, otherwise by the language model. If the confidence is too low, below 0.55, no engine is launched: the solver asks for clarification instead of guessing. Otherwise, the question goes to one of eight families of specialists.
[resolve "Combien font 15% de 240 ?"]
[§§ "Combien font 15% de 240 ?"] # même chose, forme courteEach family has its own engine, chosen to give an exact answer.
VVL code generated, then executed
“Loan repayment, margin, ratio”
Constraint solver
“Schedule eight tasks on three machines”
Prolog-style logic engine
“Which customers depend on this supplier?”
Rule learning
“Which rule sets loyal customers apart?”
Language model and document base
“What does our quality procedure say?”
Structured extraction, missing fields flagged
“Name, amount and due date of an invoice”
Expert registered in the session
“Assess a loan application”
Two to four chained sub-tasks
“Extract a headcount, then work out teams”
A complete calculation simply returns its result. When the answer depends on assumptions, it is no longer a mere value: it is an approximation carrying the value, a confidence that depends on the share supplied by the language model, a range, and the list of assumptions with their source.
The finance director asks the question as it is. The solver classifies it as a calculation, has the amortisation formula written, then executes it.
Documented result: 1,449.90 € per month, with the full trace of the calculation.
$r = [§§? "Calcule la mensualité d'un crédit de 250000 EUR sur 20 ans à 3,5% taux fixe."]
$r # 1449.90
[resolve:trace "Calcule la mensualité d'un crédit de 250000 EUR sur 20 ans à 3,5% taux fixe."]The question mixes an extraction and a calculation. The solver splits it into sub-tasks, executes them in order and combines the results.
$r = [§§? "Extrais le nombre d'employés de 'Acme Corp compte 87 employés', puis calcule combien d'équipes de 5 personnes on peut former."]
$r.value # 87 employees, so 17 teams of 5Once an expert system is registered in the session, the solver recognises the questions that fall within its domain and passes them on to it. The decision is made by the expert's rules, not by the language model. Once the expert is built, each question costs only one call to the language model, to extract the data from the application; the inference uses none.
[expert "Domaine evaluation risque credit. Dossier client : nom, revenu,
score_credit (eleve/moyen/faible), anciennete (longue/moyenne/recente),
decision. ..." "Scoring"]
$r = [§§? "Évalue le dossier de Alice Dubois, revenu 4500, score élevé, ancienneté longue"]
$r.value # DossierClient [... decision=approuve]A holiday cottage project is submitted without the cost of the works or the expected income. In our test, the solver did not make these amounts up: it returned the payback formula, with its unknowns. Explicitly asked to estimate, it does so, and says so: about 22 years, low confidence, 15 listed assumptions.
$q = [resolve "Grange achetée 320 000 EUR, à rénover en gîte : en combien d'années est-elle rentabilisée ?"]
$q # <approx: (cout_renovation + 320000)/(-charges_annuelles + revenu_annuel) [exact, 1 hypotheses]>
$e = [resolve "Grange de 280 m2 achetée 320 000 EUR dans le Lot, à rénover en gîte : estime un coût de rénovation réaliste, un tarif et un nombre de nuits, puis donne le nombre d'années pour la rentabiliser."]
$e.confidence # "low": the answer rests on estimatesBefore using an answer, you can ask the solver how it classified the question, or obtain the full trace of the routing and of the generated code.
[resolve:classify "Combien font 15% de 240 ?"] # {family, sub_kind, confidence, reasoning}
[resolve "Combien font 15% de 240 ?"] # 36.0
[resolve:trace "Combien font 15% de 240 ?"] # trace complète au format JSONThese tools are instructions of the VVL language: our partners implement them for their clients, on the ProSuite platforms.