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