Parcoursup / Calcul de l'ordre d'appel des candidats index
module CandidatClasse [@java:package:fr.parcoursup.whyml.ordreappel.algo] use int.Int use mach.java.lang.Integer use fr.parcoursup.whyml.ordreappel.algo.voeu_classe.VoeuClasse as VC type t [@java:visibility:private] = { cc_g_cn_cod : integer; cc_rang_appel : integer; } invariant { 0 <= cc_g_cn_cod } invariant { 0 <= cc_rang_appel } by { cc_g_cn_cod = 0; cc_rang_appel = 0 } let candidat_classe [@java:constructor] [@java:visibility:package] (cod : integer) (rang : integer) : t requires { 0 <= cod } requires { 0 <= rang } = { cc_g_cn_cod = cod; cc_rang_appel = rang; } let function get_g_cn_cod (self : t) : integer ensures { 0 <= result } = self.cc_g_cn_cod let function get_rang_appel (self : t) : integer ensures { 0 <= result } = self.cc_rang_appel let function est_voeu_classe (self : t) (vc : VC.t) : bool ensures { result <-> ((get_g_cn_cod self = VC.get_g_cn_cod vc) && (get_rang_appel self = VC.get_rang_appel vc)) } = self.cc_g_cn_cod = VC.get_g_cn_cod vc && self.cc_rang_appel = VC.get_rang_appel vc end (* generated on Mon Dec 2 02:04:28 UTC 2024 from rev: *)
Generated by why3doc 1.7.2+git