type synonym FunDep       :-> Type
type synonym CollectedCCs :-> Type

data type arguments CoAxiom  (indices: br)
data type arguments Branches (indices: br)

redefine Inductive IdInfo           : Type := .
redefine Inductive DataConBoxer     : Type := .
redefine Inductive CoAxiomRule      : Type := .
redefine Inductive BuiltInSynFamily : Type := .

# TODO With real module-checking, remove the `module` keyword and put this in
# `renamings.txt`
rename module PrimOp value Check = Mk_CheckOp

# Without the `redefine`s breaking the data type cycles, we also need `Expr` and
# `Bind` to have the binder type `b` be a parameter instead of an index;
# however, with the cycles broken as they currently are, `Expr` and `Bind` form
# a complete mutually-recursive group on their own.

type synonym FunDep       :-> Type
type synonym CollectedCCs :-> Type

data type arguments CoAxiom  (indices: br)
data type arguments Branches (indices: br)

redefine Inductive IdInfo           : Type := .
redefine Inductive DataConBoxer     : Type := .
redefine Inductive CoAxiomRule      : Type := .
redefine Inductive BuiltInSynFamily : Type := .

# TODO With real module-checking, remove the `module` keyword and put these in
# `renamings.txt`
rename module PrimOp         value Check = Mk_CheckOp
rename module BooleanFormula value Var   = Mk_BFVar

# Without the `redefine`s breaking the data type cycles, we also need `Expr` and
# `Bind` to have the binder type `b` be a parameter instead of an index;
# however, with the cycles broken as they currently are, `Expr` and `Bind` form
# a complete mutually-recursive group on their own.

Add the last constructor name collision
[core-coq] Add the last constructor name collision
