@@ -68,9 +68,7 @@ use crate::provers::ProverKind;
6868///
6969/// Order is stable; inserting a new variant should always append, never
7070/// re-order, because downstream consumers serialise by discriminant.
71- #[ derive(
72- Debug , Clone , Copy , PartialEq , Eq , Hash , PartialOrd , Ord , Serialize , Deserialize ,
73- ) ]
71+ #[ derive( Debug , Clone , Copy , PartialEq , Eq , Hash , PartialOrd , Ord , Serialize , Deserialize ) ]
7472pub enum TypeDiscipline {
7573 // Entry points / kernels.
7674 TypeLl ,
@@ -224,14 +222,12 @@ impl TypeDiscipline {
224222 match self {
225223 D :: TypeLl | D :: Katagoria => EntryPoint ,
226224 D :: Ordinary => Foundation ,
227- D :: Phantom | D :: Polymorphic | D :: Existential | D :: HigherKinded | D :: Row => {
228- Polymorphism
229- }
225+ D :: Phantom | D :: Polymorphic | D :: Existential | D :: HigherKinded | D :: Row => Polymorphism ,
230226 D :: Subtyping | D :: Intersection | D :: Union | D :: Gradual => Subtyping ,
231227 D :: Dependent | D :: Refinement | D :: Hoare | D :: Indexed => DependentRefinement ,
232228 D :: Qtt | D :: Linear | D :: Affine | D :: Relevant | D :: Ordered | D :: Uniqueness => {
233229 Substructural
234- }
230+ } ,
235231 D :: Immutable | D :: Capability | D :: Bunched => MutabilityCapability ,
236232 D :: Modal | D :: Epistemic | D :: Temporal | D :: Provability => Modal ,
237233 D :: EffectRow | D :: Impure | D :: Coeffect | D :: Probabilistic => EffectsCoeffects ,
@@ -419,7 +415,7 @@ impl TypeDiscipline {
419415 // that have explicit STLC tutorials.
420416 D :: Ordinary => {
421417 vec ! [ P :: Agda , P :: Coq , P :: Lean , P :: Isabelle , P :: Idris2 , P :: FStar ]
422- }
418+ } ,
423419
424420 // Polymorphism family.
425421 D :: Polymorphic => vec ! [
@@ -436,9 +432,7 @@ impl TypeDiscipline {
436432 D :: Existential => vec ! [ P :: Agda , P :: Coq , P :: Lean , P :: Idris2 , P :: FStar ] ,
437433 D :: HigherKinded => vec ! [ P :: Agda , P :: Coq , P :: Lean , P :: Idris2 , P :: FStar ] ,
438434 D :: Row => vec ! [ ] , // Koka-native; none in echidna's classical lineup.
439- D :: Phantom => vec ! [
440- P :: Agda , P :: Coq , P :: Lean , P :: Idris2 , P :: FStar , P :: Dafny ,
441- ] ,
435+ D :: Phantom => vec ! [ P :: Agda , P :: Coq , P :: Lean , P :: Idris2 , P :: FStar , P :: Dafny ] ,
442436
443437 // Subtyping family.
444438 D :: Subtyping => vec ! [ P :: FStar , P :: Dafny ] ,
@@ -473,15 +467,13 @@ impl TypeDiscipline {
473467 // Modal family.
474468 D :: Modal => vec ! [ P :: Isabelle ] , // Isabelle/ModalHOL + other instances.
475469 D :: Epistemic => vec ! [ ] , // DEL / S5 tooling lives outside echidna's current lineup.
476- D :: Temporal => vec ! [
477- P :: NuSMV , P :: TLC , P :: SPIN , P :: UPPAAL , P :: Prism , P :: TLAPS ,
478- ] ,
470+ D :: Temporal => vec ! [ P :: NuSMV , P :: TLC , P :: SPIN , P :: UPPAAL , P :: Prism , P :: TLAPS ] ,
479471 D :: Provability => vec ! [ ] , // GL logic, mostly research.
480472
481473 // Effects / coeffects.
482474 D :: EffectRow => vec ! [ P :: FStar ] , // F* effect algebras.
483475 D :: Impure => vec ! [ P :: FStar , P :: Dafny ] , // Stateful-program verifiers.
484- D :: Coeffect => vec ! [ ] , // Granule; not in echidna.
476+ D :: Coeffect => vec ! [ ] , // Granule; not in echidna.
485477 D :: Probabilistic => vec ! [ P :: Prism , P :: DReal ] ,
486478
487479 // Process / communication — the HP stack is specifically here
@@ -584,8 +576,7 @@ mod tests {
584576
585577 #[ test]
586578 fn tags_are_unique ( ) {
587- let mut tags: Vec < & ' static str > =
588- TypeDiscipline :: ALL . iter ( ) . map ( |d| d. tag ( ) ) . collect ( ) ;
579+ let mut tags: Vec < & ' static str > = TypeDiscipline :: ALL . iter ( ) . map ( |d| d. tag ( ) ) . collect ( ) ;
589580 tags. sort_unstable ( ) ;
590581 let before = tags. len ( ) ;
591582 tags. dedup ( ) ;
0 commit comments