  Dynamic logic and its variations, because of their clear and expressive forms
for capturing program properties, have been used as formalisms in
program/system specification and verification for years and have many other
applications. The program models of dynamic logics are in explicit forms. For
different target program models, different dynamic logic theories have to be
proposed to adapt different models' semantics. In this paper, we propose a
parameterized `dynamic-logic-style' formalism, namely $DL_p$, for specifying
and reasoning about general program models. In $DL_p$, program models and
logical formulas are taken as `parameters', allowing arbitrary forms according
to different interested domains. This characteristic allows $DL_p$ to support
direct reasoning based on the operational semantics of program models, while
still preserving compositional reasoning based on syntactic structures. $DL_p$
provides a flexible verification framework to encompass different dynamic logic
theories. In addition, it also facilitates reasoning about program models whose
semantics is not compositional, examples are neural networks, automata-based
models, synchronous programming languages, etc. We mainly focus on building the
theory of $DL_p$, including defining its syntax and semantics, building a proof
system and constructing a cyclic preproof structure. We analyze and prove the
soundness of $DL_p$. Case studies show how $DL_p$ works for reasoning about
different types of program models.
