What is the exact specification of on-chain Plutus Core? Isn’t it just untyped lambda calculus at the end state?

What is the expected result of applying a plutus core script?

How do we know it validated something?

In plutus core specification, they have the (error A) which is used to terminate computation.

Otherwise the unit type: () is returned, which means everything went fine.

What is PlutusTx.Validator?