Struct type_level_logic::types::balanced::Zero
[−]
pub struct Zero<X: Int = Term>(_);
Trait Implementations
impl<X: Default + Int> Default for Zero<X>
[src]
impl<X: Int> Int for Zero<X>
impl<N: Int> IntSucc for Zero<N>
impl<N: Int> IntPred for Zero<N>
impl<N: Int> IntTriple for Zero<N>
impl Unique for Zero<Term>
impl<N: Int> Unique for Zero<Zero<N>> where
Zero<N>: Unique,
Zero<N>: Unique,
impl<N: Int> Unique for Zero<Plus<N>> where
N: Unique,
N: Unique,
impl<N: Int> Unique for Zero<Minus<N>> where
N: Unique,
N: Unique,
impl IntNeg for Zero<Term>
impl<N: Int> IntNeg for Zero<Zero<N>> where
Zero<N>: IntNeg,
Zero<N>: IntNeg,
impl<N: Int> IntNeg for Zero<Plus<N>> where
N: IntNeg,
N: IntNeg,
impl<N: Int> IntNeg for Zero<Minus<N>> where
N: IntNeg,
N: IntNeg,
impl<N: Int> IntAdd<Term> for Zero<N> where
Zero<N>: Unique,
Zero<N>: Unique,
impl<N: Int> IntAdd<Undefined> for Zero<N>
impl<M: Int, N: Int> IntAdd<Zero<N>> for Zero<M> where
Zero<<M as IntAdd<N>>::Output>: Unique,
M: IntAdd<N>,
Zero<<M as IntAdd<N>>::Output>: Unique,
M: IntAdd<N>,
impl<M: Int, N: Int> IntAdd<Plus<N>> for Zero<M> where
M: IntAdd<N>,
M: IntAdd<N>,
impl<M: Int, N: Int> IntAdd<Minus<N>> for Zero<M> where
M: IntAdd<N>,
M: IntAdd<N>,
impl<N: Int> IntSub<Term> for Zero<N> where
Zero<N>: Unique,
Zero<N>: Unique,
impl<N: Int> IntSub<Undefined> for Zero<N>
impl<M: Int, N: Int> IntSub<Zero<N>> for Zero<M> where
Zero<<M as IntSub<N>>::Output>: Unique,
M: IntSub<N>,
Zero<<M as IntSub<N>>::Output>: Unique,
M: IntSub<N>,
impl<M: Int, N: Int> IntSub<Plus<N>> for Zero<M> where
M: IntSub<N>,
M: IntSub<N>,
impl<M: Int, N: Int> IntSub<Minus<N>> for Zero<M> where
M: IntSub<N>,
M: IntSub<N>,
impl<N: Int> IntMul<Term> for Zero<N>
impl<N: Int> IntMul<Undefined> for Zero<N>
impl<M: Int, N: Int> IntMul<Zero<N>> for Zero<M> where
M: IntMul<Zero<Zero<N>>>,
M: IntMul<Zero<Zero<N>>>,
impl<M: Int, N: Int> IntMul<Plus<N>> for Zero<M> where
M: IntMul<Zero<Plus<M>>>,
M: IntMul<Zero<Plus<M>>>,
impl<M: Int, N: Int> IntMul<Minus<N>> for Zero<M> where
M: IntMul<Zero<Minus<N>>>,
M: IntMul<Zero<Minus<N>>>,
impl<N: Int, L: Int, E: Int, G: Int> IntCmp<Term, L, E, G> for Zero<N> where
N: IntCmp<Term, L, E, G>,
N: IntCmp<Term, L, E, G>,
impl<M: Int, N: Int, L: Int, E: Int, G: Int> IntCmp<Zero<N>, L, E, G> for Zero<M> where
M: IntCmp<N, L, E, G>,
M: IntCmp<N, L, E, G>,
impl<M: Int, N: Int, L: Int, E: Int, G: Int> IntCmp<Plus<N>, L, E, G> for Zero<M> where
M: IntCmp<N, L, L, G>,
M: IntCmp<N, L, L, G>,
impl<M: Int, N: Int, L: Int, E: Int, G: Int> IntCmp<Minus<N>, L, E, G> for Zero<M> where
M: IntCmp<N, L, G, G>,
M: IntCmp<N, L, G, G>,
impl<N: Int, L: IntPair, E: IntPair, G: IntPair> IntCmp2<Term, L, E, G> for Zero<N> where
N: IntCmp2<Term, L, E, G>,
N: IntCmp2<Term, L, E, G>,
impl<M: Int, N: Int, L: IntPair, E: IntPair, G: IntPair> IntCmp2<Zero<N>, L, E, G> for Zero<M> where
M: IntCmp2<N, L, E, G>,
M: IntCmp2<N, L, E, G>,
impl<M: Int, N: Int, L: IntPair, E: IntPair, G: IntPair> IntCmp2<Plus<N>, L, E, G> for Zero<M> where
M: IntCmp2<N, L, L, G>,
M: IntCmp2<N, L, L, G>,
impl<M: Int, N: Int, L: IntPair, E: IntPair, G: IntPair> IntCmp2<Minus<N>, L, E, G> for Zero<M> where
M: IntCmp2<N, L, G, G>,
M: IntCmp2<N, L, G, G>,
impl<X: Int> IntAbs for Zero<X> where
Term: IntLteCmp<Zero<X>, Zero<X>, <Zero<X> as IntNeg>::Output>,
Zero<X>: IntNeg,
Term: IntLteCmp<Zero<X>, Zero<X>, <Zero<X> as IntNeg>::Output>,
Zero<X>: IntNeg,
impl<M: Int, N: Int> IntRevInternal<N> for Zero<M> where
M: IntRevInternal<Zero<N>>,
M: IntRevInternal<Zero<N>>,
type Output = <M as IntRevInternal<Zero<N>>>::Output
impl<N: Int, D: Int> IntDiv<Zero<D>> for Zero<N> where
<<Zero<N> as IntRev>::Output as IntDivInternal<Zero<D>, Int2<Term, Term>>>::Output: Int2P2,
<Zero<N> as IntRev>::Output: IntDivInternal<Zero<D>, Int2<Term, Term>>,
Zero<N>: IntRev,
<<Zero<N> as IntRev>::Output as IntDivInternal<Zero<D>, Int2<Term, Term>>>::Output: Int2P2,
<Zero<N> as IntRev>::Output: IntDivInternal<Zero<D>, Int2<Term, Term>>,
Zero<N>: IntRev,
type Output = <<<Zero<N> as IntRev>::Output as IntDivInternal<Zero<D>, Int2<Term, Term>>>::Output as Int2P2>::Output
impl<N: Int, D: Int> IntDiv<Plus<D>> for Zero<N> where
<<Zero<N> as IntRev>::Output as IntDivInternal<Plus<D>, Int2<Term, Term>>>::Output: Int2P2,
<Zero<N> as IntRev>::Output: IntDivInternal<Plus<D>, Int2<Term, Term>>,
Zero<N>: IntRev,
<<Zero<N> as IntRev>::Output as IntDivInternal<Plus<D>, Int2<Term, Term>>>::Output: Int2P2,
<Zero<N> as IntRev>::Output: IntDivInternal<Plus<D>, Int2<Term, Term>>,
Zero<N>: IntRev,
type Output = <<<Zero<N> as IntRev>::Output as IntDivInternal<Plus<D>, Int2<Term, Term>>>::Output as Int2P2>::Output
impl<N: Int, D: Int> IntDiv<Minus<D>> for Zero<N> where
<<Zero<N> as IntRev>::Output as IntDivInternal<Minus<D>, Int2<Term, Term>>>::Output: Int2P2,
<Zero<N> as IntRev>::Output: IntDivInternal<Minus<D>, Int2<Term, Term>>,
Zero<N>: IntRev,
<<Zero<N> as IntRev>::Output as IntDivInternal<Minus<D>, Int2<Term, Term>>>::Output: Int2P2,
<Zero<N> as IntRev>::Output: IntDivInternal<Minus<D>, Int2<Term, Term>>,
Zero<N>: IntRev,
type Output = <<<Zero<N> as IntRev>::Output as IntDivInternal<Minus<D>, Int2<Term, Term>>>::Output as Int2P2>::Output
impl<N: Int, D: Int> IntRem<Zero<D>> for Zero<N> where
<<Zero<N> as IntRev>::Output as IntDivInternal<Zero<D>, Int2<Term, Term>>>::Output: Int2P1,
<Zero<N> as IntRev>::Output: IntDivInternal<Zero<D>, Int2<Term, Term>>,
Zero<N>: IntRev,
<<Zero<N> as IntRev>::Output as IntDivInternal<Zero<D>, Int2<Term, Term>>>::Output: Int2P1,
<Zero<N> as IntRev>::Output: IntDivInternal<Zero<D>, Int2<Term, Term>>,
Zero<N>: IntRev,
type Output = <<<Zero<N> as IntRev>::Output as IntDivInternal<Zero<D>, Int2<Term, Term>>>::Output as Int2P1>::Output
impl<N: Int, D: Int> IntRem<Plus<D>> for Zero<N> where
<<Zero<N> as IntRev>::Output as IntDivInternal<Plus<D>, Int2<Term, Term>>>::Output: Int2P1,
<Zero<N> as IntRev>::Output: IntDivInternal<Plus<D>, Int2<Term, Term>>,
Zero<N>: IntRev,
<<Zero<N> as IntRev>::Output as IntDivInternal<Plus<D>, Int2<Term, Term>>>::Output: Int2P1,
<Zero<N> as IntRev>::Output: IntDivInternal<Plus<D>, Int2<Term, Term>>,
Zero<N>: IntRev,
type Output = <<<Zero<N> as IntRev>::Output as IntDivInternal<Plus<D>, Int2<Term, Term>>>::Output as Int2P1>::Output
impl<N: Int, D: Int> IntRem<Minus<D>> for Zero<N> where
<<Zero<N> as IntRev>::Output as IntDivInternal<Minus<D>, Int2<Term, Term>>>::Output: Int2P1,
<Zero<N> as IntRev>::Output: IntDivInternal<Minus<D>, Int2<Term, Term>>,
Zero<N>: IntRev,
<<Zero<N> as IntRev>::Output as IntDivInternal<Minus<D>, Int2<Term, Term>>>::Output: Int2P1,
<Zero<N> as IntRev>::Output: IntDivInternal<Minus<D>, Int2<Term, Term>>,
Zero<N>: IntRev,
type Output = <<<Zero<N> as IntRev>::Output as IntDivInternal<Minus<D>, Int2<Term, Term>>>::Output as Int2P1>::Output
impl<N: Int, D: Int, R: Int, Q: Int> IntDivInternal<D, Int2<R, Q>> for Zero<N> where
N: IntDivInternal<D, <<R as IntTriple>::Output as IntAbsMinThreeCmp<<<R as IntTriple>::Output as IntSub<D>>::Output, <<R as IntTriple>::Output as IntAdd<D>>::Output, <Q as IntTriple>::Output, Plus<Q>, Minus<Q>>>::Output>,
<R as IntTriple>::Output: IntAbsMinThreeCmp<<<R as IntTriple>::Output as IntSub<D>>::Output, <<R as IntTriple>::Output as IntAdd<D>>::Output, <Q as IntTriple>::Output, Plus<Q>, Minus<Q>>,
R: IntTriple,
<R as IntTriple>::Output: IntSub<D>,
R: IntTriple,
<R as IntTriple>::Output: IntAdd<D>,
R: IntTriple,
Q: IntTriple,
N: IntDivInternal<D, <<R as IntTriple>::Output as IntAbsMinThreeCmp<<<R as IntTriple>::Output as IntSub<D>>::Output, <<R as IntTriple>::Output as IntAdd<D>>::Output, <Q as IntTriple>::Output, Plus<Q>, Minus<Q>>>::Output>,
<R as IntTriple>::Output: IntAbsMinThreeCmp<<<R as IntTriple>::Output as IntSub<D>>::Output, <<R as IntTriple>::Output as IntAdd<D>>::Output, <Q as IntTriple>::Output, Plus<Q>, Minus<Q>>,
R: IntTriple,
<R as IntTriple>::Output: IntSub<D>,
R: IntTriple,
<R as IntTriple>::Output: IntAdd<D>,
R: IntTriple,
Q: IntTriple,