Can we say following proposition is correct?
"every Smart Contract is a Dapp, but a Dapp may not be a Smart Contract."
Smart contracts, to me, are the part of any distributed application (dApp) that runs on the blockchain's virtual machine. That could be Solidity code compiled down to EVM byte code, Vyper code compiled down to EVM byte code or straight out of the box hand-written EVM byte code.
The dApp is, I think, bigger than that and includes the web3.js (RPC-based) user interface on a website, IPFS front-end, or even a desktop application. So, I might say something more along the lines of "Every dApp has, at its heart, a smart contract."
There are also dApps that don't have smart contracts as part of them (I've seen some talk about soley IPFS-based distributed applications), and probably even smart contracts without a front end (which would probably also qualify as a distributed application).
Generally, though, I think most people would say dApps are larger software systems with smart contract (i.e. EVM byte code) at thier heart.