<p>Andrew Poelstra discussed semantic policy and concrete policy at this <a href="https://btctranscripts.com/advancing-bitcoin/2020/2020-02-07-andrew-poelstra-miniscript/" rel="nofollow noreferrer">Miniscript workshop</a> at Advancing Bitcoin 2020.</p>
<blockquote>
<p>There are two types of Policies in rust-miniscript. There are semantic Policies which are the ones you get where you start with a Miniscript and throw away all the extra information. Those are what you use to do analysis and stuff. Then there are concrete Policies and those have weights on the branches. You can always get to a semantic Policy by throwing away information. We have a function called <code>Lift</code> that I think we use later on. We’ve imported the <code>Liftable</code> trait. We create this concrete Policy, we parse it and you can see it looks kind of like Miniscript. We parse it in the usual way using the <code>from_str</code> trait. Then we call this function <code>htlc_policy.compile</code>. The compile turns a concrete Policy into a Miniscript.</p>
</blockquote>

CC BY-SA 4.0
2022-05-19T11:04:46.633Z
2022-05-19T11:14:07.383Z
2022-05-19T11:14:07.383Z
Michael Folkson
<p>What is the difference between semantic policy and concrete policy in a Miniscript context?</p>
<p>The difference between Policy and Miniscript is defined <a href="https://bitcoin.stackexchange.com/questions/91565/what-does-bitcoin-policy-language-offer-the-developer-that-miniscript-doesnt-w">here</a>.</p>

<terminology><miniscript>
What is the difference between semantic policy and concrete policy in a Miniscript context?
Michael Folkson
# What is the difference between semantic policy and concrete policy in a Miniscript context?

(Asked by: username_0 on 2022-03-04)

What is the difference between semantic policy and concrete policy in a Miniscript context?

The difference between Policy and Miniscript is defined [here](https://bitcoin.stackexchange.com/questions/91565/what-does-bitcoin-policy-language-offer-the-developer-that-miniscript-doesnt-w).

**Tags:** terminology, miniscript


---

## 1 answers

### Answer by username_0 on 2022-05-19. Score: 0 | Accepted answer

Andrew Poelstra discussed semantic policy and concrete policy at this [Miniscript workshop](https://btctranscripts.com/advancing-bitcoin/2020/2020-02-07-andrew-poelstra-miniscript/) at Advancing Bitcoin 2020.

> There are two types of Policies in rust-miniscript. There are semantic Policies which are the ones you get where you start with a Miniscript and throw away all the extra information. Those are what you use to do analysis and stuff. Then there are concrete Policies and those have weights on the branches. You can always get to a semantic Policy by throwing away information. We have a function called `Lift` that I think we use later on. We’ve imported the `Liftable` trait. We create this concrete Policy, we parse it and you can see it looks kind of like Miniscript. We parse it in the usual way using the `from_str` trait. Then we call this function `htlc_policy.compile`. The compile turns a concrete Policy into a Miniscript.


---

