A: Then you might want to check out
Reconstructor.
Reconstructor's base language allows you to define a first-order language with
indefinitely many constants, predicates, variables and even function symbols. It also contains
arithmetic, set theory and other mathematics inside the object language.