I would expect no less even in an introductory text. Mathematics is meant to be precise and formal mathematics even more so. Prosaic pedagogy might suit a liberal arts introduction but it won't help the reader to convince themselves that the statements and theorems proposed are true and valid.
The syntactic approach is really useful as a programmer. A Logical Approach to Discrete Math[0] teaches programmers how to develop proofs in this style using logic and syntactic substitution. Once shown how easy it is to achieve rigour it is hoped that work-a-day programmers can formulate their own proofs and develop stronger specifications using mathematical tools.
I'm not a formally trained mathematician and am completely self-taught as a programmer but with some background in set and graph theory I found it approachable. It's certainly a good companion text to learning more practical systems like TLA+ or Lean.
A Logical Approach to Discrete Mathematics: https://www.amazon.com/Logical-Approach-Discrete-Monographs-...
And a more pragmatic approach to the same material (with a lot of cross-over in terms of proof-style, etc):
Programming in the 1990s: https://www.amazon.com/Introduction-Graph-Theory-Dover-Mathe...
It will actually get you into writing proofs in set theory within the first couple of chapters.
The syntactic approach is really useful as a programmer. A Logical Approach to Discrete Math[0] teaches programmers how to develop proofs in this style using logic and syntactic substitution. Once shown how easy it is to achieve rigour it is hoped that work-a-day programmers can formulate their own proofs and develop stronger specifications using mathematical tools.
I'm not a formally trained mathematician and am completely self-taught as a programmer but with some background in set and graph theory I found it approachable. It's certainly a good companion text to learning more practical systems like TLA+ or Lean.
[0] https://www.amazon.ca/Logical-Approach-Discrete-Math/dp/0387...